我有一个Xml文件fileOri.xml
,还有一些像
<SubItem name='somename' value='someVal'></SubItem>
我计划将这些行复制到另一个文件fileDes.xml
。有快速的&amp;轻松的方式?
答案 0 :(得分:3)
添加到Rajs的答案,以下是使用Transform:
的方法代码
XmlTextReader reader = new XmlTextReader("C:\\fileOri.xml");
XmlTextWriter writer = new XmlTextWriter("C:\\fileDes.xml", Encoding.UTF8);
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load("C:\\MyStylesheet.xslt");
transform.Transform(reader, writer);
样式表
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- define the root element for your destination document -->
<xsl:element name="root">
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="//SubItem">
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
通过转换进行操作,您可以灵活地更改要复制的内容,而无需在将来触及可执行文件 - 只需根据需要修改Xslt。
<强>提示强>
您的问题表明您可能更想要一个包含订单项的平面文本文件以供进一步处理 - 在这种情况下,您仍然可以使用Xslt但使用文本输出。
答案 1 :(得分:2)
但是,您也可以使用样式表,然后使用transform创建新的xml。
答案 2 :(得分:0)
如果您只想复制整个文件,请使用File.Copy
如果要复制某些节点,请使用XmlDocument
打开源,使用SelectNodes
对其运行zpath查询,迭代生成的节点集合并将每个节点的.OuterXml
复制到新文件。