用节点的重复模式解析XML

| 您能否给我一些有关在C#中解析XML文档的最佳方法的想法?
<RESPONSE>
  <FNAME>user1</FNAME>
  <LNAME>lastname1</LNAME>
  <ADDRESS>
     <LINE1>line 1 for user 1</LINE1>
     <LINE2>line 2 for user 1</LINE2>
     .....
     .....
  </ADDRESS>
  <FNAME>user2</FNAME>
  <LNAME>lastname2</LNAME>
  <ADDRESS>
     <LINE1>line 1 for user 2</LINE1>
     <LINE2>line 2 for user 2</LINE2>
     .....
     .....
  </ADDRESS>

</RESPONSE>
这是从在线XML服务返回的数据,由于嵌套不适用于每个不同的元素,因此显然格式不正确。有没有一种方法可以避免逐行解析和文本比较?     
已邀请:
干得好:
XmlTextReader xml = new XmlTextReader(\"response.xml\");
while (xml.Read())
{
    switch (xml.NodeType)
    {
        case XmlNodeType.Element:
            {
                if (xml.Name == \"RESPONSE\") Console.WriteLine(\"Response: \");
                if (xml.Name == \"FNAME\")
                {
                    Console.Write(\"First Name: \");
                }
                if (xml.Name == \"LNAME\")
                {
                    Console.Write(\"Last Name: \");
                }
                if (xml.Name == \"ADDRESS\") Console.WriteLine(\"Address: \");
                if (xml.Name == \"LINE1\")
                {
                    Console.Write(\"Line 1: \");
                }
                if (xml.Name == \"LINE2\")
                {
                    Console.Write(\"Line 2: \");
                }
            }
            break;
        case XmlNodeType.Text:
            {
                Console.WriteLine(xml.Value);
            }
            break;
        default: break;
    }
}
Console.ReadKey();
    
Linq to Xml是使用.NET解析XML的现代方法 以下代码段将使您可以访问所有FNAME元素
var doc = XDocument.Parse(xml);
foreach (var fname in doc.Root.Elements(\"FNAME\") {
  // fname.Value has the element value
}
    

要回复问题请先登录注册