Я пытаюсь использовать XLST с этим XML:
<?xml version="1.0"?>
<ArrayOfDynamicData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DynamicData>
<item>
<name>Name</name>
<value xsi:type="xsd:int">0</value>
</item>
<item>
<name>Value</name>
<value xsi:type="xsd:long">1</value>
</item>
</DynamicData>
</ArrayOfDynamicData>
XLST у меня на данный момент:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"
xmlns:err="http://www.w3.org/2005/xqt-errors"
exclude-result-prefixes="xs xdt err fn">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<graph showNames='1' caption='##TITLE HERE##' decimalPrecision='0' >
<xsl:for-each select="ArrayOfDynamicData/DynamicData/item">
<xsl:if test="name='Name'">
<set>
<name><xsl:value-of select='value' /></name>
</xsl:if>
<xsl:if test="name='Value'">
<value><xsl:value-of select='value' /></value>
</set>
</xsl:if>
</xsl:for-each>
</graph>
</xsl:template>
</xsl:stylesheet>
Теперь у меня в голове это должно работать, но я получаю ошибку из-за несоответствия тегов. Но мне нужно, чтобы данные из двух блоков были помещены в один блок, и я не уверен, как мне этого добиться.
Спасибо,
Джеймс.
Edit:
Я пытаюсь добиться этого:
<set>
<name>0</name>
<value>2</value>
</set>
Если я поставлю <set>
теги вне if, я получу:
<set>
<name>0</name>
</set>
<set>
<value>2</value>
</set>