C# XML CDATA 保存文件

问题描述 投票:0回答:1

有人可以帮助我,我在 XMLDocument 变量中有以下内容:

<autorizaciones><autorizacion><estado>aaa</estado><numeroAutorizacion>2011202</numeroAutorizacion><fechaAutorizacion>2023-11-20T10:30:14-05:00</fechaAutorizacion><ambiente>prueba</ambiente><comprobante>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;factura id="comprobante" version="1.0.0"&gt;
  &lt;infoTributaria&gt;
    &lt;ambiente&gt;2&lt;/ambiente&gt;
    &lt;tipoEmision&gt;1&lt;/tipoEmision&gt;
    &lt;razonSocial&gt;EMPRESA&lt;/razonSocial&gt;
    &lt;nombreComercial&gt;EMPRESA&lt;/nombreComercial&gt;
    &lt;ruc&gt;99999999999&lt;/ruc&gt;
    &lt;claveAcceso&gt;2011202&lt;/claveAcceso&gt;
    &lt;codDoc&gt;01&lt;/codDoc&gt;
    &lt;estab&gt;001
&lt;/estab&gt;
    &lt;ptoEmi&gt;002&lt;/ptoEmi&gt;
    &lt;secuencial&gt;000107272&lt;/secuencial&gt;
    &lt;dirMatriz&gt;AV 25 DE Y 8 VO CLLJN&lt;/dirMatriz&gt;
  &lt;/infoTributaria&gt;</comprobante><mensajes /></autorizacion></autorizaciones>

我想保存为以下格式的文件:

<autorizaciones><autorizacion><estado>aaa</estado><numeroAutorizacion>2011202</numeroAutorizacion><fechaAutorizacion>2023-11-20T10:30:14-05:00</fechaAutorizacion><ambiente>prueba</ambiente><comprobante><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<factura id="comprobante" version="1.0.0">
  <infoTributaria>
    <ambiente>2</ambiente>
    <tipoEmision>1</tipoEmision>
    <razonSocial>EMPRESA</razonSocial>
    <nombreComercial>EMPRESA</nombreComercial>
    <ruc>99999999999</ruc>
    <claveAcceso>2011202</claveAcceso>
    <codDoc>01</codDoc>
    <estab>001</estab>
    <ptoEmi>002</ptoEmi>
    <secuencial>000107272</secuencial>
    <dirMatriz>AV 25 DE Y 8 VO CLLJN`your text`</dirMatriz>
  </infoTributaria></factura>]]></comprobante><mensajes /></autorizacion></autorizaciones>

我使用 XmlDocument docXML.Save(file) 但第一种格式是保留。我该如何解决这个问题?

c# xml cdata
1个回答
0
投票

使用 LINQ to XML。

using System.Xml.Linq;

var xml = XElement.Load("test.xml");

var comprobante = xml.Descendants("comprobante").First();
var value = comprobante.Value;
var cdata = new XCData(value);
comprobante.ReplaceNodes(cdata);

xml.Save("test2.xml");
© www.soinside.com 2019 - 2024. All rights reserved.