gpt4 book ai didi

c# - 如何使用本地名称 XPATH 在 C# 上使用冒号管理 XML 标记

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:35 26 4
gpt4 key购买 nike

<分区>

这是我需要使用 C# 管理的更复杂的 XML 的简化版本。

问题是当我尝试访问命名空间中的标签时,XPATH 不起作用。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<s:Body xmlns:s=\"sssssss\"><s:SessionID>abcde</s:SessionID></s:Body>");
string xpath = "//*[local-name()='s:SessionID']";
Context.UserLogger.Info(xmlDoc.SelectSingleNode(xpath).InnerText);
//Object reference not set to an instance of an object

但是代码在标签上没有冒号的情况下工作完美。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<s:Body xmlns:s=\"sssssss\"><SessionID>abcde</SessionID></s:Body>");
string xpath = "//*[local-name()='SessionID']";
Context.UserLogger.Info(xmlDoc.SelectSingleNode(xpath).InnerText);
//abcde

我已经在 XPATH 验证器上确保“//*[local-name()='s:SessionID']”工作正常。

我错过了什么?

提前致谢

我已阅读有关 XmlNamespaceManager 的信息,但我更愿意使用“直接”路径。 XML 充满了命名空间并且是动态的,因此其结构经常变化。

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