c#GetElementsByTagName然后读取内部标记值

c#GetElementsByTagName然后读取内部标记值,c#,wpf,xml,tags,getelementsbytagname,C#,Wpf,Xml,Tags,Getelementsbytagname,下面是示例xml <DOC> <DOCNO>WSJ870323-0180</DOCNO> <HL>Italy's Commercial Vehicle Sales</HL> <DD>03/23/87</DD> <DATELINE>TURIN, Italy</DATELINE> <TEXT>Commercial-vehicle sales in Italy rose 11.4%

下面是示例xml

<DOC>
<DOCNO>WSJ870323-0180</DOCNO>
<HL>Italy's Commercial Vehicle Sales</HL>
<DD>03/23/87</DD>
<DATELINE>TURIN, Italy</DATELINE>
<TEXT>Commercial-vehicle sales in Italy rose 11.4% in February from a year earlier, to 8,848 units, according to provisional figures from the Italian Association of Auto Makers.</TEXT>
</DOC>

<DOC>
<DOCNO>WSJ870323-0180</DOCNO>
<HL>Italy's Commercial Vehicle Sales</HL>
<DD>03/23/87</DD>
<DATELINE>TURIN, Italy</DATELINE>
<TEXT>Commercial-vehicle sales in Italy rose 11.4% in February from a year earlier, to 8,848 units, according to provisional figures from the Italian Association of Auto Makers.</TEXT>
</DOC>

WSJ870323-0180
意大利商用车销量
03/23/87
意大利都灵
根据意大利汽车制造商协会的临时数据,2月份意大利商用车销量同比增长11.4%,达到8848辆。
WSJ870323-0180
意大利商用车销量
03/23/87
意大利都灵
根据意大利汽车制造商协会的临时数据,2月份意大利商用车销量同比增长11.4%,达到8848辆。
下面的代码不起作用,为什么

       System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
    doc.Load("docs.xml");

    XmlNodeList elemList = doc.GetElementsByTagName("DOC");
    for (int i = 0; i < elemList.Count; i++)
    {
        string docno = elemList[i].Attributes["DOCNO"].ToString();
    } 
System.Xml.XmlDocument doc=new System.Xml.XmlDocument();
doc.Load(“docs.xml”);
XmlNodeList elemList=doc.GetElementsByTagName(“doc”);
for(int i=0;i

C#4.0 wpf使用此代码,假设您有一个有效的根:

XmlNodeList elemList = doc.GetElementsByTagName("DOC");
for (int i = 0; i < elemList.Count; i++)
{
    var elements = elemList[i].SelectNodes("DOCNO");
    if (elements == null || elements.Count == 0) continue;
    var firstElement = elements.Item(0);
    var docno = firstElement.InnerText;
}
XmlNodeList elemList=doc.GetElementsByTagName(“doc”);
for(int i=0;i
使用Linq To Xml解析Xml要容易得多。比如说,

var xDoc = XDocument.Load("docs.xml");

var docs = xDoc.Descendants("DOC")
            .Select(x => new{
                DocNo = x.Element("DOCNO").Value,
                Text = x.Element("TEXT").Value
            })
            .ToList();

您发布的XML示例是单个文档的一部分吗?如果是,则应将它们括在根元素内。在这种情况下,您的根是,它会重复多次。
DOCNO
不是属性。它是子元素。