繁体   English   中英

将XML文件合并到merged.xml文件中

[英]Merging XML Files together into merged.xml file

我将尝试使问题尽可能简短,并提供所需的每一个细节。

我有一个包含许多XML文件的文件夹,我需要将所有这些文件合并在一起,以仅包含一个XML,并且每个文件中的所有详细信息(merged.xml)

我想使用XSL转换和批处理文件进行合并

XML文件示例:

File1.xml

<?xml version="1.0" encoding="UTF-16"?>
<Errors>
<Error>
<Number>1</Number>
...Some other elements...
</Error>
</Errors>

File2.xml

<?xml version="1.0" encoding="UTF-16"?>
<Errors>
</Error>
<Number>2</Number>
...Some other elements...
</Error>
</Errors>

用于对文件运行XSL转换的批处理文件代码:

for %%f in (File*.xml) do (
msxsl "%%~nf.xml" merge.xsl >> "merged.xml"
)
pause

我尝试了以下XSL转换:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/Errors">
<xsl:copy>
<xsl:apply-templates select="//*/Error"/>
</xsl:copy>
</xsl:template>


<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

但是,输出(merged.xml)文件为:

<?xml version="1.0" encoding="UTF-16"?>
<Errors>
<Error>
<Number>1</Number>
...Some other elements...
</Error>
</Errors>
<?xml version="1.0" encoding="UTF-16"?>
<Errors>
<Error>
<Number>2</Number>
...Some other elements...
</Error>
</Errors>

所需的(merged.xml)文件是:

<?xml version="1.0" encoding="UTF-16"?>
<Errors>
<Error>
<Number>1</Number>
...Some other elements...
</Error>
<Error>
<Number>2</Number>
...Some other elements...
</Error>
</Errors>

对不起,太长了!!

在此先感谢:)期待您的答复

XSLT不是要使用的工具。 根据所需的结果,您只想将所有文件连接在一起,但需要注意的是,生成的文件是格式良好的XML文档。 基本算法:

  • 对于每个文件,删除<?xml?>处理说明, <Errors></Errors>标签。
  • 并置所有文件
  • <?xml version="1.0" encoding="UTF-16"?><Errors>附加到合并的输出中。
  • </Errors>附加到合并的输出中。

使用适当的工具(Perl,Python等)可以简化这些步骤。

只是因为数据是XML并不意味着您必须使用XML工具来完成工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM