gpt4 book ai didi

XSLT 帮助将单个节点拆分为节点集合

转载 作者:行者123 更新时间:2023-12-04 06:40:31 26 4
gpt4 key购买 nike

我有看起来像的 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_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>

我需要修改它所以它最终看起来像
<?xml version="1.0"?>
<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.34</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>

现在我有零 XSL 经验,但我做得还不错,但我最大的绊脚石是如何拆分 CCC_????节点变成单个节点并放入 ????代码值到它自己的节点?

任何和所有帮助都被最迫切地接受!

最佳答案

这是非常直接的转换:

<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>

备注 :按原样复制输入的身份规则。覆盖名称以“CCC_”开头的元素的标识规则。

关于XSLT 帮助将单个节点拆分为节点集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com