<AgoraServersConfig>
<AgoraServers id="NYQ1">
<AgoraName>prod</AgoraName>
<TableName>someTable</TableName>
<Rule_ID>1</Rule_ID>
<Rule_ID>3</Rule_ID>
<Rule_ID>5</Rule_ID>
</AgoraServers>
<AgoraServers id ="QA03">
<AgoraName>dev</AgoraName>
<TableName>someTable</TableName>
<Rule_ID>1</Rule_ID>
<Rule_ID>2</Rule_ID>
<Rule_ID>5</Rule_ID>
</AgoraServers>
</AgoraServersConfig>
鉴于上述模式,我想知道如何构建一个Xpath查询,该查询返回例如id为“QA03”的节点的子节点。
非常感谢提前
答案 0 :(得分:0)
我不确定我是否完全理解您的架构,但基于该节点的id属性返回节点的子节点看起来像
//*[@id='QA03']/*
答案 1 :(得分:0)
xpath看起来像这样:
/AgoraServersConfig/AgoraServers[@id='QA03']/*
如果你想做一些更动态的事情,你可以将id放入一个变量,例如
<xsl:variable name="targetid">QA03</xsl:variable>
<xsl:for-each select="/AgoraServersConfig/AgoraServers[@id=$targetid]/*">
<xsl:copy-of select="."/>
</xsl:for-each>
答案 2 :(得分:0)
使用强>:
<强> /*/*[@id='QA03']/node()
强>
也可以使用标准XPath函数id()
。
但是,要实现此目的,必须有一个用于将id
定义为"ID-type attribute"的XML文档的DTD。
示例:id('QA03')/node()