У меня есть xml следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE concept SYSTEM "aimlDomain.dtd">
<?xml-stylesheet type="text/xsl" href="aimlTest.xsl"?>
<concept>
<category>
<pattern>_ TOPIC ELEMENT ATTRIBUTE</pattern>
<template><srai>REQUIRED TOPIC AND MAP ELEMENT ATTRIBUTES</srai>
</template>
</category>
<category>
<pattern>TOPIC ELEMENT ATTRIBUTE _</pattern>
<template><srai>REQUIRED TOPIC AND MAP ELEMENT ATTRIBUTES</srai>
</template>
</category>
</concept>
Категория элемента — это новый домен, который я добавляю со специализацией элемента, которая специализируется на иностранном элементе. Я хочу преобразовать файл в цель, новый тип преобразования. Ожидаемый результат должен быть таким:
` <?xml version="1.0" encoding="utf-8"?>
<category>
<pattern>_ TOPIC ELEMENT ATTRIBUTE</pattern>
<template><srai>REQUIRED TOPIC AND MAP ELEMENT ATTRIBUTES</srai>
</template>
</category>`
Но в файле нет ничего, кроме объявления. Фактический вывод выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
Вот мой файл aimlTest.xsl:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*[contains(@class, ' topic/topic topic/concept ')]">
<xsl:for-each select="*[contains(@class, ' topic/foreign category-d/category
')]">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Я хочу знать, как выбрать ожидаемый контент.
class
, поэтому ничего не выбирается. -- У вас есть два почти одинаковых элементаcategory
; почему копируется только один/ - person michael.hor257k   schedule 11.12.2018@class
в вашем DTD? Правильно ли загружено DTD? Вы запускаете трансформацию через соответствующий плагин DITA-OT? - person potame   schedule 11.12.2018contains
, вероятно, должно бытьcontains(' topic/topic topic/concept ', @class)
, хотя само по себе я не думаю, что это решит вашу проблему. - person Tim C   schedule 11.12.2018