Я знаю, что это простая проблема. Я все еще учусь и ознакомлюсь с кодировкой XSLT. У меня проблема в XSLT, и я не знаю, правильно ли я это сделал. Мне нужно получить значение из входного файла и сохранить его в имени тега нового элемента и что мне не нужно заполнять пространства имен и атрибуты, что находится на родительском корневом элементе. Я сделал исследование об этом, и я видел много ссылок, но я не могу его применить. XSLT (v02), который я создал, работает нормально (просто копируйте из ссылок), если корневой элемент не имеет пространств имен и атрибутов. Но, когда я помещаю пространства имен и атрибута, никакого выхода не заполняется.Невозможно прочитать пространства имен и атрибут в xslt
входного файла
<Root xmlns="http://abcd.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" releaseID="9.2" versionID="2.12.3" xsi:schemaLocation="abcd.com abcd.xsd">
<Element>
<Field>AAAAA</Field>
</Element>
<Element>
<Field>BBBBB</Field>
</Element>
<Element>
<Field>CCCCC</Field>
</Element>
файл XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<NewRecord>
<xsl:for-each select="Root/Element">
<NewTransaction>
<Position>
<xsl:value-of select="position()"/>
</Position>
<TransactionID>
<xsl:value-of select="Field"/>
</TransactionID>
</NewTransaction>
</xsl:for-each>
</NewRecord>
</xsl:template>
вывод, сгенерированный
<NewRecord/>
Мой ожидаемый результат должен выглядеть следующим образом:
<NewRecord>
<NewTransaction>
<Position>1</Position>
<TransactionID>AAAAA</TransactionID>
</NewTransaction>
<NewTransaction>
<Position>2</Position>
<TransactionID>BBBBB</TransactionID>
</NewTransaction>
<NewTransaction>
<Position>3</Position>
<TransactionID>CCCCC</TransactionID>
</NewTransaction>
Я думаю, что проблема в <xsl:template match="/">
, я до сих пор путают на узлах, что мне нужно положил. Спасибо за помощь.
Возможный дубликат [XSLT с источником XML, который имеет пространство имен по умолчанию, установленное в xmlns] (http://stackoverflow.com/questions/1344158/xslt-with-xml-source-that-has-a-default-namespace -set-to-xmlns) – teppic
Почему ваша таблица стилей объявляет 'version =" 1.0 "', когда ваш вопрос помечен 'xslt-2.0'? –
@michael. hor257k, я забыл изменить версию, но я действительно использую v02. Спасибо. –