获取命名空间中的属性值

时间:2013-02-26 18:31:27

标签: c# xml linq linq-to-xml xml-namespaces

我正在尝试处理以下XML:

<rif:Rif xmlns:rif="rif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" rif:numeroRif="XYZXYZXYZ">
    <rif:Nombre>Nombre</rif:Nombre>
    <rif:AgenteRetencionIVA>SI</rif:AgenteRetencionIVA>
    <rif:ContribuyenteIVA>SI</rif:ContribuyenteIVA>
    <rif:Tasa />
</rif:Rif>

我正在使用下一个代码:

XDocument doc = XDocument.Parse(result);
var q = from item in doc.Descendants()
        let attributeType = item.Attribute("AgenteRetencionIVA").Value
        select item;

我在获取属性rif:AgenteRetencionIVA时遇到问题。我该怎么办?

1 个答案:

答案 0 :(得分:1)

看起来您需要指定自定义命名空间:

string xml = @"...";

XName nameRif = "rif";
XDocument doc = XDocument.Parse(xml);

var q = from item in doc.Descendants()
        let attributeType = item.Attribute(nameRif + "AgenteRetencionIVA")
        select item.Value;
var a = q.ToArray();