[英]Parse XML with repeated pattern of nodes
您能否給我一些有關在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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.