首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xml中的Xml

Xml中的Xml
EN

Stack Overflow用户
提问于 2012-09-07 21:57:22
回答 4查看 118关注 0票数 0

我基本上想知道如何在另一个XmlDocument中插入一个XmlDocument。

第一个XmlDocument将具有基本的页眉和页脚标记。第二个XmlDocument将是必须插入到第一个XmlDocument中的主体/数据标记。

代码语言:javascript
复制
            string tableData = null;
            using(StringWriter sw = new StringWriter())
            {
                rightsTable.WriteXml(sw);

                tableData = sw.ToString();                    
            }

            XmlDocument xmlTable = new XmlDocument();
            xmlTable.LoadXml(tableData);

            StringBuilder build = new StringBuilder();
            using (XmlWriter writer = XmlWriter.Create(build, new XmlWriterSettings { OmitXmlDeclaration = true }))
            {
                writer.WriteStartElement("dataheader");

                //need to insert the xmlTable here somehow

                writer.WriteEndElement();
            }

有没有更简单的解决方案?

EN

回答 4

Stack Overflow用户

发布于 2012-09-07 21:59:41

在文档解析器中使用importNode功能。

票数 1
EN

Stack Overflow用户

发布于 2012-09-07 21:59:54

您将需要在CDATA部分中编写内部XML文件。

对这样的节点使用writer.WriteCData,将内部XML作为文本传入。

代码语言:javascript
复制
writer.WriteCData(xmlTable.OuterXml);

另一种选择(thanks DJQuimby)是将XML编码为某种XML兼容格式(比如base64) -请注意,所使用的编码必须是XML兼容的,并且某些编码方案会增加编码文档的大小(base64会增加约30%)。

票数 1
EN

Stack Overflow用户

发布于 2012-09-07 22:00:45

您可以使用基于CreateCDataSection方法的代码

代码语言:javascript
复制
// Create an XmlCDataSection from your document
var cdata = xmlTable.CreateCDataSection("<test></test>");

XmlElement root = xmlTable.DocumentElement;

// Append the cdata section to your node
root.AppendChild(cdata);

链接:http://msdn.microsoft.com/fr-fr/library/system.xml.xmldocument.createcdatasection.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12319574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档