需要使用C编辑XML属性的帮助吗

需要使用C编辑XML属性的帮助吗,xml,c#-4.0,Xml,C# 4.0,我有下面的XML <Account xmlns:i="http://schemas.datacontract.org/2004/07/Uanet> <Charges xmlns:a="http://schemas.datacontract.org/2004/07/Urjat"> <a:Charge> <a:ChargeActualName>Recent Payment</a:ChargeActualName>

我有下面的XML

 <Account xmlns:i="http://schemas.datacontract.org/2004/07/Uanet>  
<Charges xmlns:a="http://schemas.datacontract.org/2004/07/Urjat">
<a:Charge> 
<a:ChargeActualName>Recent Payment</a:ChargeActualName>                                                    
<a:ChargeAmount>-190.0200</a:ChargeAmount>      <a:ChargeId>recent_payment</a:ChargeId> 
<a:ChargeRatePerUnit i:nil="true"/>  
</a:Charge>
</a:Charges> 
</Account> 
我试图删除所有XML元素的属性I:nil=true。我只复制了XML的一部分。请给我建议一个方法


谢谢大家!

可以使用xslt转换来防止复制某些节点:

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:i="http://schemas.datacontract.org/2004/07/Uanet>"
                >
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="@* | node()">
      <xsl:copy>
        <!-- copy all nodes except the i:nil attributes -->
        <xsl:apply-templates select="@*[name()!='i:nil'] | node()"/>
      </xsl:copy>
  </xsl:template>

</xsl:stylesheet>
链接到工作解决方案:


问候

@Juluru,你试过我的答案吗?在我的解决方案中,我删除了所有I:nil属性。这是你期望的吗?
XPathDocument myXPathDoc = new XPathDocument("input.xml");
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load("filter.xslt");
XmlTextWriter myWriter = new XmlTextWriter("output.xml", null);
myXslTrans.Transform(myXPathDoc, null, myWriter);