XSLT帮助将单个节点拆分为节点集合
我有一个XML,看起来像XSLT帮助将单个节点拆分为节点集合,xslt,Xslt,我有一个XML,看起来像 <?xml version="1.0"?> <ROWSET> <ROW> <AAA_ID>43238</AAA_ID> <BBB_ID>9</BBB_ID> <CCC_COURIER>2</CCC_COURIER> <CCC_FAX>33.44</CCC_FAX> <CCC_COFFEE>9</CCC
<?xml version="1.0"?>
<ROWSET>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>9</BBB_ID>
<CCC_COURIER>2</CCC_COURIER>
<CCC_FAX>33.44</CCC_FAX>
<CCC_COFFEE>9</CCC_COFFEE>
<CCC_MARSBARS>3000.43</CCC_MARSBARS>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>10</BBB_ID>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>11</BBB_ID>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>12</BBB_ID>
<CCC_MISC>5</CCC_MISC>
</ROW>
</ROWSET>
现在我没有XSL经验,但我做得不太差,但我最大的绊脚石是如何分割CCC????将节点向上划分为各个节点,并将????将值编码到它自己的节点中
任何和所有的帮助都会被极度接受 可以使用
开头-with()
和子字符串()
将节点名称()
分割成若干部分。这是非常直接的转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(name(),'CCC_')]">
<CCC>
<CODE>
<xsl:value-of select="substring-after(name(),'CCC_')"/>
</CODE>
<AMOUNT>
<xsl:value-of select="."/>
</AMOUNT>
</CCC>
</xsl:template>
</xsl:stylesheet>
注意:按原样复制输入的标识规则。正在覆盖名称以“CCC”开头的元素的标识规则。@PoweredByPorkers:你很好!随时问。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(name(),'CCC_')]">
<CCC>
<CODE>
<xsl:value-of select="substring-after(name(),'CCC_')"/>
</CODE>
<AMOUNT>
<xsl:value-of select="."/>
</AMOUNT>
</CCC>
</xsl:template>
</xsl:stylesheet>
<ROWSET>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>9</BBB_ID>
<CCC>
<CODE>COURIER</CODE>
<AMOUNT>2</AMOUNT>
</CCC>
<CCC>
<CODE>FAX</CODE>
<AMOUNT>33.44</AMOUNT>
</CCC>
<CCC>
<CODE>COFFEE</CODE>
<AMOUNT>9</AMOUNT>
</CCC>
<CCC>
<CODE>MARSBARS</CODE>
<AMOUNT>3000.43</AMOUNT>
</CCC>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>10</BBB_ID>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>11</BBB_ID>
</ROW>
<ROW>
<AAA_ID>43238</AAA_ID>
<BBB_ID>12</BBB_ID>
<CCC>
<CODE>MISC</CODE>
<AMOUNT>5</AMOUNT>
</CCC>
</ROW>
</ROWSET>