Хорошо, еще один вопрос XSLT. Это преобразование состоит из двух действий, которые я работаю индивидуально в двух разных XSLT, но которые я не могу использовать для меня.XSLT Identity Transformation при удалении всех атрибутов
Я пытаюсь создать преобразование идентичности, которое выбирает набор узлов, а также удаляет все атрибуты. Вот что я работаю с:
данных:
<?xml version="1.0" encoding="UTF-8"?>
<doc>
<meta>
<data>
<uselessMeta>SomeValue</uselessMeta>
</data>
</meta>
<dataWrapper>
<data xmlns:xfa="http://www.w3.org/1999/xhtml">
<neededData1 meanAttribute="NotWanted">TransformMe!</neededData1>
<neededData2 meanAttribute="NotWanted">TransformMe!</neededData2>
</data>
</dataWrapper>
</doc>
XSLT 1 (тождественное преобразование):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" >
<xsl:output omit-xml-declaration="no" method="xml" indent="no"/>
<xsl:template match="/">
<xsl:copy>
<xsl:copy-of select="//dataWrapper/data[text() != '']" />
</xsl:copy>
</xsl:template>
</xsl:transform>
XSLT 2: XSLT - remove all attributes
Wanted Результат:
<?xml version="1.0" encoding="UTF-8"?>
<data xmlns:xfa="http://www.w3.org/1999/xhtml">
<neededData1>TransformMe!</neededData1>
<neededData2>TransformMe!</neededData2>
</data>
Проблема заключается в том, что я пытаюсь сопоставить либо корень (/
), либо все узлы (node()
), но я не могу использовать <xsl:copy-of />
и <xsl:apply-templates />
вместе. Вещи, чтобы отметить:
- Xalan (JDK 1.7)
- XSLT 1.0
Любая помощь очень ценится!
Большое спасибо, сэр! Я был настолько сосредоточен на единственном совпадении с шаблонами, которое несколько раз не приходило мне в голову. Это также безупречно работало в Xalan. Спасибо! – GuillaumeC91