首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xpath访问具有命名空间的子节点

使用xpath访问具有命名空间的子节点
EN

Stack Overflow用户
提问于 2021-04-14 12:31:33
回答 1查看 111关注 0票数 1

如何使用Xpath读取子注释的内容?

我已经试过了:

代码语言:javascript
复制
var xml = new XmlDocument();
            
xml.Load("server-status.xml");
var ns = new XmlNamespaceManager(xml.NameTable);
ns.AddNamespace("ns", "namespace");
var node = xml.SelectSingleNode("descendant::ns:server[ns:ip-address]", ns)
Console.WriteLine(node.InnerXml)

但我只得到一根这样的绳子:

代码语言:javascript
复制
<ip-address>127.0.0.50</ip-address><name>Server 1</name><group>DATA</group>

我怎样才能单独得到这些值呢?

Xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<server-status xmlns="namespace">
    <server>
        <ip-address>127.0.0.50</ip-address>
        <name>Server 1</name>
        <group>DATA</group>
    </server>
</server-status>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-14 13:51:04

您在XPath中正确地使用了XML名称空间。

然而,你最初的XPath,

代码语言:javascript
复制
descendant::ns:server[ns:ip-address]

表示要选择带有ns:server子元素的所有ns:ip-address元素。

如果您希望选择ns:ip-address子级本身,请使用

代码语言:javascript
复制
descendant::ns:server/ns:ip-address

同样,您可以选择ns:namens:group元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67091826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档