用C#解析特殊XML文件,怎么用XmlNamespaceManager。

2024-11-22 08:10:04
推荐回答(3个)
回答1:

Entity_Groups 的名称空间是http://www.ca.com/erwin,而这个名称空间没有被加到XmlNamespaceManager 里面,所以结果是null,正确的用法是:


XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);

           

nsmgr.AddNamespace("ns", "http://www.ca.com/erwin";);

            nsmgr.AddNamespace("UDP", "http://www.ca.com/erwin/metadata";);

            nsmgr.AddNamespace("EMX", "http://www.ca.com/erwin/data";);

            nsmgr.AddNamespace("EM2", "http://www.ca.com/erwin/EM2data";);

            XmlNode root = xml.DocumentElement.SelectSingleNode("

EMX:Model/ns:Entity_Groups

");

回答2:

试试把最后一句改成这样:
XmlNode root = xml.DocumentElement.SelectSingleNode("EMX:Model/EMX:Entity_Groups", nsmgr);

回答3:

必须不对啊 亲,XmlNode root = xml.DocumentElement.SelectSingleNode("EMX:Model");
这个先查找出父节点,然后再找root的子节点找你需要的节点就行啦~