我是XPath的新手,所以我希望在这里使用正确的术语...
我有一个〜200k XML文件,我想使用.Net XPath进行解析。我已经使用online tool测试了我的查询,并使它们按照我想要的方式工作。但是,当我在.Net中使用这些相同的查询时,它们始终不返回任何内容。
经过反复摆弄之后,我发现我可以通过定义名称空间管理器,然后为该名称空间加上所有前缀来“解决”此问题:
XMLDoc = New XmlDocument()
XMLDoc.Load(FilePath)
mgr = New XmlNamespaceManager(XMLDoc.NameTable)
mgr.AddNamespace("a", "a.xsd")
Root = XMLDoc.DocumentElement
prop = Root.SelectSingleNode("//a:Properties/:PropertyData//a:boy/a:does/a:this/a:get/a:annoying", mgr)
必须在各处使用a:
和mgr
,使得代码难以读取和键入。有没有一种方法可以解决此问题,从而不必在各处撒上数百个a:
?
文件摘要:
<Properties>
<PropertyData>
<PropertyName>a place</PropertyName>
<Address>APlace Road</Address>
<City>NYC</City>