我有一个XML字符串,我试图用C#读取它,但我没有得到子节点。我将整个XML作为内部XML字符串。我无法读取节点。这是我的XML字符串和我的代码。
<Filters FilterName="706337_test">
<MemberName>Dorvil</MemberName>
<MemberId />
<ProviderName />
<ProviderId>706337</ProviderId>
<SelectedProjects>5030003</SelectedProjects>
<CNAChartSelected>false</CNAChartSelected>
<OldProject>false</OldProject>
</Filters>
尝试读取XML节点的C#代码
XmlDocument xml = new XmlDocument();
xml.LoadXml(xmlstring);
XmlNodeList xnList = xml.SelectNodes("/Filters");
我只能看到一个过滤的子节点,我需要读取MemberId,MemberName等,如何阅读它们?
答案 0 :(得分:0)
这是因为SelectNodes中的字符串错误:
var xml = new XmlDocument();
xml.LoadXml(xmlstring);
var xnList1 = xml.SelectNodes("/Filters"); //list of 1 element
var xnList2 = xml.SelectNodes("/Filters/*"); //list of 7 elements
foreach (XmlNode node in xnList2)
{
Console.WriteLine(node.OuterXml);
}
你也可以使用它:
var xElements = XElement.Parse(xmlstring).Elements();
foreach (var element in xElements)
{
Console.WriteLine(element);
}
答案 1 :(得分:0)
您需要告诉应用程序要读取哪些节点。
XmlDocument xml = new XmlDocument();
xml.LoadXml(xmlstring);
XmlNodeList xnList = xml.SelectNodes("/Filters");
foreach (XmlNode node in xnList)
{
string memberName = node["MemberName"].InnerText;
}
这使应用程序知道读取MemberName节点内的内容。对其他节点执行相同操作并回发结果。当你去看看从每个节点得到什么时调试。