2
我有以下XML。XPATH对命名空间返回空值
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost/gsainis/GsaInisWebService">
<string>
<gsafeed>
<group action="add">
<record>
......
......
</record>
</group>
</gsafeed>
</string>
</ArrayOfString>
我正在使用C#代码(.NET 4.0)来解析此XML。我正在使用下面的代码来选择上述XML中的所有<record>
节点。
XmlNamespaceManager xmlnsmgr = new XmlNamespaceManager(INISRecordXMLdoc.NameTable);
xmlnsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlnsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
xmlnsmgr.AddNamespace(string.Empty, "http://localhost/gsainis/GsaInisWebService");
foreach (XmlNode node in INISRecordXMLdoc.SelectNodes("//ArrayOfString/string/gsafeed/group/record",xmlnsmgr))
{
//Do something
}
问题是foreach循环永远不会执行。什么应该是正确的XPath使用,以便我得到所有<record>
节点?
@marc_c:太好了!有用。非常感谢! – itsbalur 2012-07-27 06:15:31
两天前我阅读了XmlNamespaceManager。现在在这里。现在我只需要用我的自我,这对我来说将来会很自然:) – radbyx 2012-07-27 06:41:11