我需要读取一个 XML 文件,我正在尝试使用 Linq,但我在获取后代时遇到了一些问题。我需要能够在不知道元素名称的情况下获得后代。这可能吗?
这是 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