我有一个XML文档,如下所示:
<stReq xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EvalRes>
<RenDtSrc xmlns="http://fakeurl.com/somthing/facade/params">
<ContentType>application/pdf</ContentType>
<DocumentName>Name</DocumentName>
<Content>Doc Content</Content>
</RenDtSrc>
</EvalRes>
</stReq>
从asp.net应用程序,我试图检查文档中是否存在节点<RenDtSrc>
。以下是我用来读取XML文件和节点元素的代码
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("D:\\Test\\Doc1.xml");
XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/stReq/EvalRes/RenDtSrc");
即使其中有子节点,nodeList
的计数也会返回零。
我认为它与命名空间管理器有关,但我无法弄明白。任何帮助将不胜感激。
答案 0 :(得分:1)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("D:\\Test\\Doc1.xml");
var nsm = new XmlNamespaceManager(xmlDoc.NameTable);
nsm.AddNamespace("s", "http://fakeurl.com/somthing/facade/params");
XmlNodeList nodeList = xmlDoc.SelectNodes("//s:RenDtSrc", nsm);
答案 1 :(得分:0)
XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("//stReq/EvalRes/node()/*");
输出:
Node [0] = {Element, Name="ContentType"}
Node [1] = {Element, Name="DocumentName"}
Node [2] = {Element, Name="Content"}