簡體   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