我需要讀取一個XML文件,我正在嘗試使用Linq,但是我有一些問題要到達後代。我需要能夠在不知道元素名稱的情況下獲取相關的副產品。這可能嗎?使用沒有元素名稱的Linq讀取XML
這裏是XML:
<Root>
<myResponse>
<GUID></GUID>
<TType code="1">myTType Value
<TSubType tc="1">TSubType Value</TSubType>
</TType>
<TDate>1999-09-19</TDate>
<TTime>16:00:00.0Z</TTime>
</myResponse>
</Root>
這裏是我的代碼:
using (XmlReader nodeReader = XmlReader.Create(@"C:\Projects\GetXML\Test2.xml"))
{
nodeReader.MoveToContent();
XDocument xRoot = XDocument.Load(nodeReader, LoadOptions.SetLineInfo);
foreach (XElement e in xRoot.Elements("Root").DescendantsAndSelf())
Console.WriteLine("{0}{1}{2}",
("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20), " = " ,
(e.Value).PadRight(5));
}
我的結果:
Root =
myTType Value
TSubType Value
1999-09-19
16:00:00.0Z
myResponse =
myTType Value
TSubType Value
1999-09-19
16:00:00.0Z
GUID =
TType = myTType Value
TSubType Value
TSubType = TSubType Value
TDate = 1999-09-19
TTime = 16:00:00.0Z
我所期待:
Root =
myResponse =
GUID =
TType = myTType Value
TSubType = TSubType Value
TDate = 1999-09-19
TTime = 16:00:00.0Z
標題和說明與您的實際/預期節目有很大不同。你*是*在事先不知道他們的名字的情況下獲取元素,你只是沒有獲得空元素,正確地格式化結果等。 –
作爲一個方面說明,這可能是我見過的最差的縮進代碼。 – recursive