【发布时间】:2020-05-02 12:45:32
【问题描述】:
我正在尝试从具有相同名称的多个节点中选择值,但我无法创建成功的变量或 IF 语句。
在下面的示例中,我试图弄清楚如何在 XSLT 中创建一个 IF 语句,说明来自 Houses 节点的 IF HouseID 和 HouseNo 与来自 Streets 节点的 HouseID 和 HouseNo 匹配,然后显示匹配节点的价格。
XML 示例如下:
<pi:Houses>
<pi:HouseID>1111</pi:HouseID>
<pi:HouseNo>012</pi:HouseNo>
<pi:Price>100000</piPrice>
</pi:House>
<pi:Streets>
<pi:HouseID>1111</pi:HouseID>
<pi:HouseNo>012</pi:HouseNo>
<pi:Price>100000</piPrice>
</pi:Streets>
<pi:Houses>
<pi:HouseID>2222</pi:HouseID>
<pi:HouseNo>098</pi:HouseNo>
<pi:Price>9000000</piPrice>
</pi:House>
<pi:Streets>
<pi:HouseID>2222</pi:HouseID>
<pi:HouseNo>098</pi:HouseNo>
<pi:Price>9000000</piPrice>
</pi:Streets>
我目前正在尝试使用
<xsl:if test ="pi:Houses/pi:HouseID = pi:Streets/HouseID">
<xsl:value-of select="pi:Houses/pi:Price"/>
</xsl:if>
但这给了我两个值。 我尝试过使用 position() 运算符,但没有尝试过。
任何建议都会很棒,谢谢!
【问题讨论】:
-
您能否向我们展示一个最小但格式良好的 XML 示例文档以及输出这两个值的最小但完整的 XSLT?目前尚不清楚您在什么上下文或容器中拥有示例元素,也不清楚您的
xsl:if的上下文。
标签: xml xslt transformation