2012-02-21 146 views
3

大きなxmlファイルに結合するのに必要な同じ列と書式の86個のXMLファイルのディレクトリがあります。私はExcelで開こうとするとバッチファイルで複数のxmlドキュメントを1つの大きなドキュメントにまとめる

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

は残念ながら、これはパースエラーを作成します...私はバッチファイルと非常に経験の浅いです、と私の最初の試みは、単純に使用して、次に一つのファイルのテキストを追加することでした。私はこれが多くのフィールドとタグが繰り返されているためだと思います。誰も私がこれを達成する方法を知っていますか?私はExcelでこのファイルを開く必要があるので、オプションであれば、ファイルをCSVに変換することができます。

ご協力いただきありがとうございます!

+0

これを行うとxmlファイルは除外されません。複数のxmlヘッダー。ルートはなく、名前空間が壊れている可能性があります。あなたはそれを行うために何かxmlを意識している必要があります。それぞれをExcelで簡単に開くことができます。次に、必要なデータをある種のマクロを使用して1つのExcelワークシートに抽出します。 –

答えて

-1

XMLには、マージされたドキュメントで繰り返される<?xml version="1.0" encoding="UTF-8"?>のような開始タグが1つあります。また、他にすべてのルートタグが含まれている場合は、ルートタグを複数回マージすることもできます。

Linux/Unix(find、grepなど)のような強力なシェルとコマンドを使用しても、バッチシェルでこれを行うことは(可能な場合)非常に難しいと思います。

これを行うには、単純なプログラム(たとえばVBA)を使用します。

編集:Excelで複数のxmlファイルをインポートできることがわかりました。 [開発]タブに移動する必要があります(非表示の場合は表示します)。 XMLグループで、「インポート」を選択し、複数のXMLファイルを選択します。それはうまくいくはずです。

+0

あなたの提案をお寄せいただきありがとうございます。私はあなたが言ったようにすべてのファイルをExcelにインポートしようとしましたが、残念ながら「このデータに対応するXMLマップが見つかりません」というエラーが表示されます。 – tob88

+0

この問題は、複数のXMLデータファイルを選択してインポートすると、ファイルの1つに一致するXMLマップが見つからない場合に発生します。最初に適切なスキーマをインポートしてから、ファイルを再度インポートすることができます。 – vulkanino

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> 

この1つのファイルをxsltで処理すると、すべてのファイルが結合されたように見えます。

4

ここには、現在のディレクトリにあるすべてのxmlファイルを1つのファイルCombineXML.batに結合するクイックバッチコマンドがあります。すべてのXMLファイルを新しいルートノード( "<root>")でラップします。

ただし、この新しいレイヤーをXMLに導入したくない場合があります。 XMLを1つの領域(たとえば、Webブラウザ)で表示している場合は、これが機能します。作成したnew.xmlファイルには、すべてのXMLファイルを持っています

コピー* .xmlのnew.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

一緒に合併した。同じコマンドでBATファイルを作成することができます

+0

Windowsのコマンドプロンプトからこれを行いました。治療をしました。ありがとう:) – TryHarder

関連する問題