XSLT节点遍历
这里是XML的剪贴画:XSLT节点遍历,xslt,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 我想得到74.7的单
<?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
我想得到74.7的单点值。有许多具有唯一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>
价值:
节点值的xpath是/node/text()
所以
节点值的xpath是
/node/text()
所以
XSLT只是盒子里的工具之一,没有它就什么都不是 XSLT只是盒子里的工具之一,没有它就什么都不是 不要忘记,您可以一次选择多个级别。将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>
74.7
使用此样式表:
<?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>
临时雇员:
我们可以挑一件你感兴趣的东西
注意事项:
- 表达式的
部分意味着在整个树中搜索/
节点,在节点所在的任何深度查找组
节点组
部分选择id为9的[@id='9']
节点组
- 紧随其后的
部分选择它找到的Probe[@id='1']
为1的id
节点的子节点,依此类推Group
<?xml version="1.0" encoding="iso-8859-1" ?>
<NetworkAppliance id="S123456">
<Group id="9">
<Probe id="1">
<Value>74.7</Value>
</Probe>
</Group>
</NetworkAppliance>
74.7
使用此样式表:
<?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>
临时雇员:
我们可以挑一件你感兴趣的东西
注意事项:
- 表达式的
部分意味着在整个树中搜索/
节点,在节点所在的任何深度查找组
节点组
部分选择id为9的[@id='9']
节点组
- 紧随其后的
部分选择它找到的Probe[@id='1']
为1的id
节点的子节点,依此类推Group
当前代码返回什么?运行代码(并修复XML中缺失的标记)我得到以下结果:“Temp:74.7”当前代码返回什么?运行代码(并修复XML中缺失的标记)我得到以下结果:“Temp:74.7”你在哪里看到CDATA分区?你在哪里看到CDATA分区?