gpt4 book ai didi

c# - 如何从 XDocument 中获取 NameTable?

转载 作者:IT王子 更新时间:2023-10-29 04:00:02 28 4
gpt4 key购买 nike

如何从 XDocument 中获取 NameTable?

它似乎没有 XmlDocument 所具有的 NameTable 属性。

编辑:从缺乏答案来看,我猜我可能没有捕获要点。

我正在对这样的 XDocument 进行 XPath 查询...

document.XPathSelectElements("//xx:Name", namespaceManager);

它工作正常,但我必须手动将我想使用的 namespace 添加到 XmlNamespaceManager,而不是像使用 XmlDocument 那样从 XDocument 中检索现有名称表。

最佳答案

您需要通过 XmlReader 推送 XML 并使用 XmlReader 的 NameTable 属性。

如果您已经有 Xml,您正在加载到 XDocument 中,那么请确保您使用 XmlReader 来加载 XDocument:-

XmlReader reader = new XmlTextReader(someStream);
XDocument doc = XDocument.Load(reader);
XmlNameTable table = reader.NameTable;

如果您使用 XDocument 从头构建 Xml,则需要调用 XDocument 的 CreateReader 方法,然后让某些内容使用阅读器。

一旦阅读器被使用(例如,通过加载另一个 XDocument,或者更好:一些什么都不做的接收器,它只会导致阅读器运行 XDocument 的内容),您可以检索 NameTable。

关于c# - 如何从 XDocument 中获取 NameTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/934486/

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