2012-02-21 160 views
3

我有一個86 xml文件的目錄,它具有相同的列和格式,我需要將它們合併到一個大的xml文件中。我非常缺乏經驗與批處理文件,我的第一次嘗試是簡單地添加一個文件文本到下一使用...使用批處理文件將多個xml文檔合併爲一個大文檔

FOR %%i IN (directory\*.001) DO type %%i >> directory\combo_file.001 

不幸的是,這個當我嘗試在Excel中打開它創建了一個解析錯誤。我會想象這是因爲許多字段和標籤重複。有誰知道我可以如何實現這一目標?我只需要在Excel中打開這個文件,所以如果這是一個選項,我會開放將文件轉換爲CSV。

任何幫助非常感謝,謝謝!

+0

如果你這樣做,它不會去掉一個xml文件。多個XML頭,沒有根,可能會破壞名稱空間。你需要知道xml的東西來做到這一點。可能更容易打開Excel中的每一個,然後將所需的數據提取到一個帶有某種宏的Excel工作表中。 – 2012-02-21 13:04:18

回答

-1

問題是XML有一個單獨的起始標記,例如:<?xml version="1.0" encoding="UTF-8"?>這將在合併的文檔上重複。另外,如果有一個根標籤包含所有其他標籤,則合併您會多次包含根標籤。

我認爲在批處理shell中,如果可能的話,甚至使用強大的shell和像Linux/Unix(find,grep等)那樣的命令將會非常困難。

我會用一個簡單的程序(比如說VBA)來做到這一點。

編輯:我發現在Excel中你可以導入多個XML文件。你必須去發展選項卡(顯示它,如果它隱藏)。然後在XML組中選擇「導入」並選擇多個XML文件。這應該工作。

+0

感謝您的建議,我只是試圖將所有文件導入到excel中,正如您所說的,但不幸的是,我收到錯誤「無法找到與此數據對應的XML映射」。 – tob88 2012-02-21 13:22:23

+0

當您選擇多個要導入的XML數據文件時,會發生此問題,並且Excel無法爲其中一個文件找到匹配的XML映射。您可以先導入適當的模式,然後再次導入文件。 – vulkanino 2012-02-21 13:24:49

0
<html xmlns:xi="http://www.w3.org/2001/XInclude"> 
<head> 
<title>Book Title</title> 
</head> 
<body> 
<xi:include href="chap1.xml"/> 
<xi:include href="chap2.xml"/> 
<xi:include href="chap3.xml"/> 
</body> 
</html> 

當您使用xslt處理這一個文件時,它看起來像是所有組合的文件。

4

下面是一個快速批處理命令,它將當前目錄中的所有xml文件合併到一個文件CombineXML.bat中。它使用新的根節點包裝所有XML文件(「<root>」)。

但是,對於您的情況,您可能不希望將此新圖層引入到XML中。 如果你只是在單個區域查看XML(例如:在網頁瀏覽器中),那麼這就可以工作。

--CombineXML.bat-- 
@echo on 
rem ==clean up== 
erase %0.xml 
rem ==add the root node== 
echo ^<root^> > %0.txt 
rem ==add all the xml files== 
type *.xml >> %0.txt 
rem ==close the root node== 
echo ^<^/root^> >> %0.txt 
rem ==rename to xml== 
ren %0.txt %0.xml 
2

一個非常簡單的方法將做一個簡單的複製:

副本* .XML new.xml

創建將所有的XML文件中的new.xml文件合併在一起。你可以使用相同的命令創建一個BAT文件

+0

我是從Windows命令提示符執行的。工作過一種享受。謝謝 :) – TryHarder 2016-09-19 05:03:03

相關問題