2016-12-26 80 views
0

我試着到XML從源系統轉換爲相同的XML在C#試圖XML文本轉換成XML

<root> 
<child>&lt;xml&gt;&lt;/xml&gt;</child> 
</root> 

<root> 
<child><![CDATA[<xml></xml>]]></child> 
</root> 

我嘗試以下操作抵達此

var node = resXML.SelectSingleNode(@"/root/child"); 
node.ParentNode.ReplaceChild(node.AppendChild(resXML.CreateCDataSection(encodedXML)), node); 

低於輸出

<root> 
<![CDATA[<xml></xml>]]> 
</root> 

回答

0

試試這個:

string xml = "<root><child>&lt;xml&gt;&lt;/xml&gt;</child></root>"; 

XmlDocument resXML = new XmlDocument(); 
resXML.LoadXml(xml); 
var node = resXML.SelectSingleNode(@"/root/child"); 
node.AppendChild(resXML.CreateCDataSection(node.InnerText)); 
node.RemoveChild(node.FirstChild); 

string output = resXML.OuterXml; 
+0

這爲我工作,除了innerText屬性的一部分,它總是編碼XML內容。所以我明確地轉換了它們。 string xml =「 <xml> </xml >」;「 XmlDocument resXML = new XmlDocument(); resXML.LoadXml(xml); var node = resXML.SelectSingleNode(@「/ root/child」); var xmlFormat = ConverttoXML(node.InnerText); //自定義函數返回作爲值 node.AppendChild(resXML.CreateCDataSection(xmlFormat)); node.RemoveChild(node.FirstChild); string output = resXML.OuterXml; – Raju

0

試試這個

var sourceXml = "<root><child>&lt;xml&gt;&lt;/xml&gt;</child></root>"; 

var source = XDocument.Parse(sourceXml); 

var result = new XDocument(new XElement("root", 
        source.Root 
          .Elements("child") 
          .Select(e => new XElement("child", new XCData(e.Value))))); 

var resultXml = result.ToString();