【发布时间】:2013-09-02 09:50:03
【问题描述】:
我这个月开始学习 C#,我正在创建一个程序来解析 XML 文件并获取一些数据。 .xml 文件是:
<Info>
<Symbols>
<Symbol>
<Name>Name</Name>
<Type>INT</Type>
</Symbol>
<Symbol>
<Name>Name</Name>
<Type>INT</Type>
<Properties>
<Property>
<Name>TAG</Name>
</Property>
</Properties>
</Symbol>
</Symbols>
</Info>
我下面的代码从“符号”中获取元素“名称”和“类型”的值。但是我需要检查每个“符号”中是否存在元素“属性”,因为如您所见,会有一些(如第一个“符号”)没有“属性”元素。 如果存在,我将从 中获取值,在本例中为:“TAG”。 有没有一种简单的方法可以让 foreach 仅在存在时才尝试获取它?!
var symbols = from symbol in RepDoc.Element("Info").Element("Symbols").Descendants("Symbol")
select new
{
VarName = symbol.Element("Name").Value,
VarType = symbol.Element("Type").Value,
};
foreach (var symbol in symbols)
{
Console.WriteLine("" symbol.VarName + "\t" + symbol.VarType);
}
提前谢谢你^^
【问题讨论】:
标签: c# xml xml-parsing foreach var