2013-02-26 58 views
1

我试图处理以下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

看起来土特产品需要指定自定义命名空间:

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(); 
+0

,我会添加这些行代码?之前还是之前? – PMCastle 2013-02-26 18:40:08

+0

@ user2112467:将XName声明为LINQ查询,并将其与每个元素名称一起使用。 – abatishchev 2013-02-26 18:42:09

+0

doest work,give me object reference error – PMCastle 2013-02-26 18:53:08