c# - SelectSingleNode 总是返回 null?

标签 c# xml xpath namespaces selectsinglenode

以我的 XML 的这个简化示例为例:

<?xml version="1.0"?>
<message xmlns="http://www.mydomain.com/MyDataFeed" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mydomain.com/MyDataFeed https://secure.mydomain/MyDataFeed/myDataFeed.xsd" requestId="13898" status="1">
<error>Invalid Login</error>
</message>

我正在尝试使用 SelectSingleNode 方法选择“错误”节点,但是使用以下代码它总是返回 NULL?

XmlNode errorNode = oss.SelectSingleNode("/message/error");
if (errorNode != null)
     Console.Writeline("There is an error");

根据我所做的研究,这与 namespace 有关,但我根本无法使任何工作正常进行。有什么建议吗?

最佳答案

您缺少由 <message> 定义的 XML 命名空间SelectSingleNode 中的节点称呼。假设 oss是一个 XmlDocument例如,您需要这样做:

XmlNamespaceManager nsMgr = new XmlNamespaceManager(oss.NameTable);
nsMgr.AddNamespace("ns", "http://www.mydomain.com/MyDataFeed");

XmlNode errorNode = oss.SelectSingleNode("/ns:message/ns:error", nsMgr);

马克

关于c# - SelectSingleNode 总是返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1766254/

相关文章:

c# - LINQ 如何查询一个值是否在范围列表之间?

c# - 删除某些控件后如何删除(删除)文本框之间的空间?

android - ImageView 不在 CardView 内中心

xml - R:如何获取站点时间的父属性和节点值?

c# - 如何在编辑模式(详细 View )中显示外键值?

c# - 使用 HttpCookieCollection 和 CookieContainer 发送 cookie

java - 如何避免使用 Java 生成 XML 时出现多余的空行?

xml - 如何查找 Sabre Soap API 的特定端点?

python - 如何在 webdriver 中使用 onclick 事件作为选择器?

java - 如何使用Java中的XPathExpression删除XML文件中文本内容== var1的节点和属性== var2的父节点?