【问题标题】:Trouble Looping through XML nodes循环通过 XML 节点的问题
【发布时间】:2015-12-22 01:18:43
【问题描述】:

我的 xml

<INSPECTION_AREAS>

<AREA id="1" name="NorthWest Region">
<INSPECTION_SECTORS>
   <SECTOR id = "654" name = "Angola">
   </SECTOR>
   <SECTOR id = "852" name = "Lafouche">
       </SECTOR>
   <SECTOR id = "419" name = "Lake Borgne">
   </SECTOR>
</INSPECTION_SECTORS>
</AREA>

<AREA id="2" name="SouthWest Region"> 
<INSPECTION_SECTORS>
   <SECTOR id = "106" name = "Orleans">
   </SECTOR>
   <SECTOR id = "968" name = "Plaquemines">
       </SECTOR>
   <SECTOR id = "455" name = "Forty Arpent">
   </SECTOR>
</INSPECTION_SECTORS>
</AREA>

<AREA id="3" name="MidWest Region">
<INSPECTION_SECTORS>
   <SECTOR id = "698" name = "West End">
   </SECTOR>
   <SECTOR id = "232" name = "St. Bernard">
       </SECTOR>
   <SECTOR id = "768" name = "Grand Isle">
   </SECTOR>
</INSPECTION_SECTORS>

我正在尝试列出每个区域的每个部门。当我尝试以下操作时:

<xsl:for-each select="//INSPECTION_AREAS/AREA">
     ----<xsl:value-of select="@name"></xsl:value-of>----<xsl:text>&#xa;</xsl:text>

我只得到了我的区域列表

----NorthWest Region----
----SouthWest Region----
----MidWest Region----

这很好。当我尝试列出每个区域的扇区时,使用以下代码

<xsl:for-each select="//INSPECTION_AREAS/AREA">

     ----<xsl:value-of select="@name"></xsl:value-of>----<xsl:text>&#xa;</xsl:text>
     <xsl:for-each select=".//INSPECTION_AREAS/AREA/INSPECTION_SECTORS/SECTOR">
          <xsl:value-of select="@id"></xsl:value-of><xsl:text>&#xa;</xsl:text>
     </xsl:for-each>   

</xsl:for-each>

我得到了不同的区域,但每个区域都有相同的扇区列表。即...

----NorthWest Region----
 Angola
 Lafouche
 Lake Borgne
----SouthWest Region----
 Angola
 Lafouche
 Lake Borgne
----MidWest Region----
 Angola
 Lafouche
 Lake Borgne

我没有得到每个不同区域的不同扇区。我不确定我在这里做错了什么。对此的任何帮助都会很棒。提前致谢。

【问题讨论】:

    标签: xml loops xslt


    【解决方案1】:

    在内循环中,“上下文”已经位于正确的节点//INSPECTION_AREAS/AREA。将内部循环选择条件更改为相对 XPath:

    select="INSPECTION_SECTORS/SECTOR"
    

    但是,我强烈建议您阅读“拉”处理(您正在执行)和“推”处理之间的区别,您可以让 XSLT 引擎的自然功能为您完成迭代工作。一旦掌握了这些概念,通常使用起来就会简单得多。

    【讨论】:

    • OhEmGee...非常感谢。我现在感觉好慢。但是改变它就像一种魅力
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多