我的要求是进行XML A到XML B的转换。我从XML A中读取的标签应该是可配置的,它是一种列表的迭代。如果XML A中存在任何新标记,则应通过在Java的配置文件中添加条目并以编程方式处理,这反过来应该反映在XSLT中并转换为XML B.
我正在使用Java。是否可以通过参数传递?根据我的要求,参数将在循环或List中传递。
我是XSLT的新手,对此的任何信息链接都非常感激。
源XML - 这里可以有更多像年度,每周等的
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Report>
<Daily>
<input>1234</input>
</Daily>
<Monthly>
<input>8678</input>
</Monthly>
</Report>
目标XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Report>
<Value>
<Attribute>
<name>Daily</name>
<values>1234</values>
</Attribute>
<Attribute>
<name>Monthly</name>
<values>8678</values>
</Attribute>
</Value>
</Report>
答案 0 :(得分:1)
您可以对当前选定的节点使用name()
或local-name()
功能。
了解如何selecting current element name in XSLT
这是代码草图:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Report/">
<Value>
<xsl:for-each select="*">
<Attribute>
<name>
<xsl:value-of select="name()"/>
</name>
<values>
<xsl:value-of select="./input"/>
</values>
</Attribute>
</xsl:for-each>
</Value>
</xsl:template>
</xsl:stylesheet>