读取导致问题的XML节点

本文关键字:XML 节点 问题 读取 | 更新日期: 2023-09-27 18:27:30

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

读取导致问题的XML节点

这是因为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);
}

您需要告诉应用程序要读取哪些节点。。

XmlDocument xml = new XmlDocument();
                    xml.LoadXml(xmlstring);
                    XmlNodeList xnList = xml.SelectNodes("/Filters");
foreach (XmlNode node in xnList)
{    
    string memberName = node["MemberName"].InnerText;
}

这使应用程序知道MemberName节点内部的内容。。对其他节点执行同样的操作,并返回结果。边调试边查看每个节点的结果。