读取导致问题的XML节点

时间:2015-12-21 10:41:59

标签: c# xml xml-parsing

我有一个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等,如何阅读它们?

2 个答案:

答案 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节点内的内容。对其他节点执行相同操作并回发结果。当你去看看从每个节点得到什么时调试。

相关问题