【发布时间】:2020-03-04 04:00:16
【问题描述】:
我有一个 XML,我正在尝试从 XmlDocument 获取节点,但由于一些命名空间问题,它没有返回我想要的节点。
以下是我的 XML。
<?xml version="1.0" encoding="iso-8859-1"?>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.origoservices.com">
<content>
<application>
<personal_client id="pc1">
<title>Mr</title>
<forenames>Test</forenames>
<surname>SurName</surname>
<sex>Male</sex>
</personal_client>
<personal_client id="pc2">
<title>Mr</title>
<forenames>Test</forenames>
<surname>SurName</surname>
<sex>Male</sex>
</personal_client>
<personal_client id="pc3">
<title>Mr</title>
<forenames>Test</forenames>
<surname>SurName</surname>
<sex>Male</sex>
</personal_client>
</application>
</content>
</message>
以下是我用来从上述 xml 中获取所有 personal_client 节点的 C# 代码。
XmlDocument XMLDoc = new XmlDocument();
XMLDoc.PreserveWhitespace = true;
XMLDoc.Load("XML Loaded successfully");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(XMLDoc.NameTable);
nsmgr.AddNamespace("origo", "http://www.origoservices.com");
nsmgr.PushScope();
XmlNodeList xnList = XMLDoc.SelectNodes("//origo:message/m_content/application/personal_client", nsmgr);
它一直返回 0 个节点,请帮忙。
【问题讨论】:
-
我建议你使用较新的 XML 对象,所以
XDocument等 -
XMLDoc.Load()期望 xml 文件的路径作为参数,你为什么要传递消息?
标签: c# xml xmldocument