循环获取XML节点的问题
时间:2010-09-09
来源:互联网
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遍历完毕。
<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遍历完毕。
作者: wolf2064 发布时间: 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>
<?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>
作者: wos812 发布时间: 2010-09-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28