C# Xml中的Xml
我主要想知道如何在另一个XmlDocument中插入一个XmlDocumentC# Xml中的Xml,c#,xml,xmldocument,C#,Xml,Xmldocument,我主要想知道如何在另一个XmlDocument中插入一个XmlDocument string tableData = null; using(StringWriter sw = new StringWriter()) { rightsTable.WriteXml(sw); tableData = sw.ToString();
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();
}
第一个XmlDocument将具有基本的页眉和页脚标记。
第二个XmlDocument是body/data标记,必须插入第一个XmlDocument
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();
}
有更简单的解决方案吗?在文档解析器中使用importNode功能 在文档解析器中使用importNode功能 您需要在
CDATA
部分中编写内部XML文件
用于此类节点,将内部XML作为文本传入
writer.WriteCData(xmlTable.OuterXml);
另一个选项()是将XML编码为某种XML兼容格式(比如base64)-请注意,使用的编码必须与XML兼容,并且某些编码方案会增加编码文档的大小(base64增加约30%)。您需要在
CDATA
部分中写入内部XML文件
用于此类节点,将内部XML作为文本传入
writer.WriteCData(xmlTable.OuterXml);
另一个选项()是将XML编码为与XML兼容的格式(例如base64)-请注意,使用的编码必须与XML兼容,并且某些编码方案会增加编码文档的大小(base64增加约30%)。您可以基于CreateCataSection方法使用此代码
// 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);
//从文档中创建XMLCDATA节
var cdata=xmlTable.createCDATA节(“”);
XmlElement root=xmlTable.DocumentElement;
//将cdata节附加到节点
root.AppendChild(cdata);
链接:您可以基于CreateCataSection方法使用此代码
// 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);
//从文档中创建XMLCDATA节
var cdata=xmlTable.createCDATA节(“”);
XmlElement root=xmlTable.DocumentElement;
//将cdata节附加到节点
root.AppendChild(cdata);
链接:我不确定您真正想要的是什么,但这可以展示如何合并两个xml文档(使用Linq2xml)
字符串xml1=
@"
校长1
页脚
";
字符串xml2=
@"
身体
页脚
";
var xdoc1=XElement.Parse(xml1);
var xdoc2=XElement.Parse(xml2);
xdoc1.subjects().First(d=>d.Name==“header”).AddAfterSelf(xdoc2.Elements());
var newxml=xdoc1.ToString();
输出
<xml1>
<header>header1</header>
<body>body</body>
<data>footer</data>
<footer>footer</footer>
</xml1>
校长1
身体
页脚
页脚
我不确定您真正想要的是什么,但这可以展示如何合并两个xml文档(使用Linq2xml)
字符串xml1=
@"
校长1
页脚
";
字符串xml2=
@"
身体
页脚
";
var xdoc1=XElement.Parse(xml1);
var xdoc2=XElement.Parse(xml2);
xdoc1.subjects().First(d=>d.Name==“header”).AddAfterSelf(xdoc2.Elements());
var newxml=xdoc1.ToString();
输出
<xml1>
<header>header1</header>
<body>body</body>
<data>footer</data>
<footer>footer</footer>
</xml1>
校长1
身体
页脚
页脚
如何将其作为CDATA包含?在外部XML节点中使用CDATA部分,您将在其中放置内部XML文档。如何将其作为CDATA包含?在外部XML节点中使用CDATA部分,您将在这里放置您的内部XML文档。importNode
应该实现什么?importNode应该实现什么?我不想自己给出答案,因为我以前没有做过这种事情,但是OP能将内部xml编码到XmlDocument中的一个元素吗?@DJQuimby-这是另一种选择。我自己不想给出答案,因为我以前没有做过这种事情,但是OP能将内部xml编码到XmlDocument中的一个元素吗?@DJQuimby-这是另一种选择。