循环获取XML节点的问题

wolf2064 2010-09-09 10:38:43
XML结构如下:

<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>1.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Quarter</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER>1.0000000</BUDGET_QUATER>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Year</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER/>
<BUDGET_YEAR>1.0000000</BUDGET_YEAR>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>2.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Quarter</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER>2.0000000</BUDGET_QUATER>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Year</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER/>
<BUDGET_YEAR>2.0000000</BUDGET_YEAR>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_UNITPRICE</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>3.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_UNITPRICE</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Quarter</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER>3.0000000</BUDGET_QUATER>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_UNITPRICE</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Year</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER/>
<BUDGET_YEAR>3.0000000</BUDGET_YEAR>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_AMOUNT</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>4.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_AMOUNT</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Quarter</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER>4.0000000</BUDGET_QUATER>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>S1001</INTERNAL_ORDER>
<ACCOUNT>GENERAL_COMMENT</ACCOUNT>
<COST_CENTER>WH000010101001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>5.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>T100000005</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Month</BUDGET_PERIOD>
<BUDGET_MONTH>6.0000000</BUDGET_MONTH>
<BUDGET_QUATER/>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>T100000005</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Quarter</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER>6.0000000</BUDGET_QUATER>
<BUDGET_YEAR/>
</Budget_Data>
<Budget_Data>
<INTERNAL_ORDER>T100000005</INTERNAL_ORDER>
<ACCOUNT>GENERAL_QUANTITY</ACCOUNT>
<COST_CENTER>WH000011218001</COST_CENTER>
<BUDGET_PERIOD>Year</BUDGET_PERIOD>
<BUDGET_MONTH/>
<BUDGET_QUATER/>
<BUDGET_YEAR>6.0000000</BUDGET_YEAR>
</Budget_Data>



问题:
以每一种颜色标记的子节点值为每一组关键字,循环整个XML获取子节点值与关键字相同的所有子节点。该如何获取???

意思即为:以第一个Budget_Data节点中的INTERNAL_ORDER、ACCOUNT、COST_CENTER子节点值为关键字遍历整个XML找到所有相同的Budget_Data节点。接着以下一个Budget_Data节点中的INTERNAL_ORDER、ACCOUNT、COST_CENTER子节点值为关键字遍历剩余的XML继续找到所有相同的Budget_Data节点。。。以此不断循环 只至整个XML遍历完毕。
...全文
200 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
python777 2010-09-25
  • 打赏
  • 举报
回复
3楼的推荐很受用!
cds27 2010-09-15
  • 打赏
  • 举报
回复
参考DOM的方法:http://blog.csdn.net/cds27/archive/2008/04/18/2305166.aspx
wolf2064 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wos812 的回复:]
答案为:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>答案</h2>
<t……
[/Quote]


除了用xsl外呢?
wos812 2010-09-09
  • 打赏
  • 举报
回复
答案为:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>答案</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>INTERNAL_ORDER</th>
<th>ACCOUNT</th>
<th>COST_CENTER</th>
</tr>
<xsl:for-each select="Budget_Data">
<tr>
<td><xsl:value-of select="INTERNAL_ORDER"/></td>
<td><xsl:value-of select="ACCOUNT"/></td>
<td><xsl:value-of select="COST_CENTER"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧