我需要读取一个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