C#里XMl用selectNode为什么总是读不到值??
xml的大概结构:
<svg>
<defs>
...
</defs>
<g>
<g>
</g>
</g>
</svg>
-----------------------
XmlDocument mDocument new XmlDocument();
mDocument.Load(@"xml1.svg");
XmlNodeList nodeList = mDocument.SelectNodes("*");
XmlNodeList nodeList = mDocument.SelectNodes("/svg");
调用mDocument.SelectNodes("*")能正确显示,mDocument.SelectNodes("/svg")就查找不到。。。
其余的,//svg、//svg/g、//g...,
无论括号里改成什么格式都找不到东西,这是为什么啊???
------解决方案--------------------带名称空间的例子
http://msdn.microsoft.com/zh-cn/library/4bektfx9.aspx
http://dotnet.aspx.cc/article/7b4c7a42-4cdf-40d1-b293-e86da109a34c/read.aspx
------解决方案--------------------这要跟前面的定义一致,如果前面定义的是
xmlns:cge="bk:"
System.Xml.XmlNamespaceManager nsmanager = new System.Xml.XmlNamespaceManager(doc.NameTable);
nsmanager.AddNamespace("xxxx", "bk:");//这里的xxxx写法与下面的要一致,bk:要与 xmlns:cge="bk:" 一致
System.Xml.XmlNode node = doc.SelectNodes("//xxxx:PSR_Ref", nsmanager);