XSLT节点遍历

时间:2009-10-13 19:09:12

标签: xslt

以下是XML的剪辑:

<?xml version="1.0" encoding="iso-8859-1" ?>
<NetworkAppliance id="S123456">
  <Group id="9">
    <Probe id="1">
      <Value>74.7</Value>
    </Probe>
</NetworkAppliance>

我想获得单点值74.7。有许多具有唯一ID的组和该组下的许多探针,每个组都有唯一的ID,每个ID都有值。

我正在寻找可以获得这一值的XSLT代码示例。以下是我所拥有的不起作用:

<?xml version="1.0" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html" version="3.2" /> 
    <xsl:template match="NetworkAppliance">
        <xsl:apply-templates select="Group[@id='9']"/>
    </xsl:template>
    <xsl:template match="Group">
        Temp: <xsl:value-of select="Probe[@id='1']/Value"/>
        <br/>
    </xsl:template>
</xsl:stylesheet>

这最终对我有用:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
 <html>
 <body>
     <xsl:for-each select="NetworkAppliance/Group[@id=9]/Probe[@id=1]">
             Value: <xsl:value-of select="Value" />
     </xsl:for-each>
 </body>
 </html>
</xsl:template>
</xsl:stylesheet>

4 个答案:

答案 0 :(得分:4)

不要忘记您可以一次选择多个级别。修复您的XML:

<?xml version="1.0" encoding="iso-8859-1" ?>
<NetworkAppliance id="S123456">
  <Group id="9">
    <Probe id="1">
      <Value>74.7</Value>
    </Probe>
  </Group>
</NetworkAppliance>

并使用此样式表:

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" version="3.2" /> 

  <xsl:template match="/">
    Temp: <xsl:value-of select="//Group[@id='9']/Probe[@id='1']/Value"/>
    <br/>
  </xsl:template>
</xsl:stylesheet>

我们可以选择您感兴趣的一件商品。

注意事项:

  • 表达式的//部分意味着在整个树中搜索Group个节点,找到它们处于任何深度的Group个节点。
  • [@id='9']部分会选择Group为9 {/ 1}的id个节点
  • 紧随其后的Probe[@id='1']部分会选择Group节点所在的id个节点的子节点,依此类推。

答案 1 :(得分:1)

<xsl:value-of select="/NetworkAppliance/Group[@id=9]/Probe[@id=1]/Value"/>

答案 2 :(得分:0)

节点值的xpath为/node/text()

所以

<xsl:value-of select="Probe[@id='1']/text()"/>

答案 3 :(得分:0)

XSLT只是框中的工具之一,没有XPath

相关问题