gpt4 book ai didi

c# - 是否可以在 xpath 表达式中只指定一次命名空间前缀?

转载 作者:行者123 更新时间:2023-12-04 16:55:08 25 4
gpt4 key购买 nike

我的 XML 文件中只有一个命名空间,在根元素上定义。

<root xmlns="http://my-namespace">
<aChild>
<secondChild />
...

是否可以避免在我的 xpath 表达式的每个元素之前编写它?
做完之后
xmlNamespaceManager.AddNamespace("ns", "http://my-namespace");

我必须写
xml.SelectNodes("ns:root/ns:aChild/ns:secondChild", xmlNamespaceManager);

这样做会容易得多
xml.SelectNodes("ns:root/aChild/secondChild", xmlNamespaceManager);

我有向 XML 发送 xpath 表达式的开发人员,但他们不一定知道前缀或命名空间,他们只知道必须访问 root/aChild/secondChild .

谢谢你。

最佳答案

不幸的是,尽管看起来很直观,但在 XPath 中定义默认 namespace 并不容易。没有命名空间声明的 XPath 名称绑定(bind)到 null命名空间,而不是分配给默认命名空间的 URI。

这在 XPath default namespace handling 中讨论和 Easy things should be Easy

关于c# - 是否可以在 xpath 表达式中只指定一次命名空间前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com