我的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>
</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>
</xsl:text>
<xsl:for-each select=".//INSPECTION_AREAS/AREA/INSPECTION_SECTORS/SECTOR">
<xsl:value-of select="@id"></xsl:value-of><xsl:text>
</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
我没有为每个不同的区域获得不同的部门。我不确定我在这里做错了什么。对此的任何帮助都会很棒。提前谢谢。
答案 0 :(得分:1)
在内循环中,&#34; context&#34;已经在正确的节点let newState = Object.assign({}, state);
delete newState.c.y
。将内循环选择条件更改为相对XPath:
//INSPECTION_AREAS/AREA
但是,我强烈建议你仔细阅读&#34; pull&#34;处理(你正在做)和&#34;推&#34;处理,让您让XSLT引擎的自然功能为您完成迭代。一旦掌握了概念,通常使用起来就会简单得多。