如何处理非固定的xelement?

时间:2014-06-04 17:20:59

标签: c# .net xml linq-to-xml

我正在使用一种方法将xdocument解析为一个对象,但我在这行代码中有这样的情况:

 var xElementTax = xElementXml.Element(xn + "tax");
 var aux = xElementTax.Element(xn + "taxNN").Value;

taxNN XName中, NN 部分是一个随机数,即:tax01,tax02,tax03然后继续它可以是任何两位数字。

如果我没有固定标签,我该如何处理这种情况?标签中唯一固定的部分是 tax 字。

感谢。

1 个答案:

答案 0 :(得分:0)

您是否正在遍历xElementTax的所有元素?

如果是这样,你可以这样做:

foreach(XElement auxElement in xElementTax.Elements)
{
    var aux = auxElement.Value;
    // And so on
}

如果您只想要那些符合" taxNN"你可以改为:

foreach(XElement auxElement in xElementTax.Elements.Where(x => x.Name.ToString().StartsWith(xn + "tax"))
{
    var aux = auxElement.Value;
    ...
}

如果只有其中一个,你可以选择:

XElement auxElement = xElementTax.Elements.Where(
    x => x.Name.ToString().StartsWith(xn + "tax").FirstOrDefault();
var aux = auxElement.Value;