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...,
无论括号里改成什么格式都找不到东西,这是为什么啊???
<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://dotnet.aspx.cc/article/7b4c7a42-4cdf-40d1-b293-e86da109a34c/read.aspx
但还有个问题,要是命名的元素中带冒号,要怎么引用啊????
<g id="1028">
<cge:PSR_Ref ObjectName="123" />
</g>
-----------
命名空间为bk,引用cge:PSR_Ref,要写成bk:什么???
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);