我有这样的 XML 结构,它是由 SharePoint Web 服务返回的。
<rs:data ItemCount="4" xmlns:rs="urn:company:rowset">
<z:row ows_AssetId="HP010336520" />
<z:row ows_AssetId="HP010336519" />
<z:row ows_AssetId="HP010354403" />
<z:row ows_AssetId="HP010357062" />
</rs:data>
private static void Parser(List<XmlNode> data)
{
List<XmlNodeList> rows = (from row in data.AsEnumerable()
select row.SelectNodes("data/row")).ToList();
}
我试图查询一行,但没有成功。你们能帮帮我吗?
最佳答案
查询节点列表时需要使用XmlNamespaceManager。在您的代码中看不到文档根目录中“z”命名空间的声明:xmlns:z="#RowsetSchema"。
在您的解析器方法中尝试以下操作:
NameTable nameTable = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nameTable);
nsmgr.AddNamespace("z", "#RowsetSchema");
List<XmlNodeList> rows = (from row in data.AsEnumerable()
select row.SelectNodes("//z:row", nsmgr)).ToList();
关于c# - SharePoint XML 解析 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295662/