Мой ввод XML являетсяПреобразование вложенных XML атрибуты элементов XSLT
<?xml version="1.0" encoding="UTF-8"?>
<foobar atr0="NO" atr2="NO">
<foo atr1="NO" more="more">ONE</foo>
<bar atr6="ATR">
<baz attr="123" attr222="22">TWO</baz>
</bar>
</foobar>
Мой требуемый выход
<?xml version="1.0" encoding="UTF-8"?>
<foobar>
<foo>
<a>
<a>
<a>atr1</a>
<v>NO</v>
</a>
<a>
<a>more</a>
<v>more</v>
</a>
</a>
<v>ONE</v>
</foo>
<bar>
<baz>
<a>
<a>
<a>attr</a>
<v>123</v>
</a>
<a>
<a>attr222</a>
<v>22</v>
</a>
</a>
<v>TWO</v>
</baz>
<a>
<a>
<a>atr6</a>
<v>ATR</v>
</a>
</a>
</bar>
<a>
<a>
<a>atr0</a>
<v>NO</v>
</a>
<a>
<a>atr2</a>
<v>NO</v>
</a>
</a>
</foobar>
Я пытаюсь разбить каждый атрибут, чтобы отделить отличительные элементы с именем и значением .the FOOBAR атрибуты элементов - это последний дочерний элемент дочерних элементов foobar. Родительский элемент будет иметь свои атрибуты в качестве последних дочерних элементов.
мой XSLT сценарий -
<?xml version="1.0" encoding="utf-8"?>
<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="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@*| node()"/>
<v>
<xsl:value-of select="."/>
</v>
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<a>
<a>
<xsl:value-of select="name()"/>
</a>
<v>
<xsl:value-of select="."/>
</v>
</a>
</xsl:template>
</xsl:stylesheet>
это хорошо для 1 атрибута. Что я могу сделать для вложенных элементов и атрибутов?
спасибо Mark .... thats большой ........ –