XMLファイルをECXLELにインポートしようとしています。


ところがXMLファイルが整形式となっていなかったため、インポートに失敗しました。
もとのXMLファイルでは、開始タグと終了タグで囲まれた内容に、"<"や">"などの特殊文字をそのまま記述してしまったので、それらを"&lt;"や"&gt;"に書き直せば解決できると思います。
しかし修正箇所が膨大に存在するため、自動的に修正をする方法を探しています。

そのような修正が可能なソフトや、プログラムを教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/06/01 00:13:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:khazad-Lefty No.6

回答回数181ベストアンサー獲得回数27

ポイント18pt

そのXMLで使われているタグの種類がそう多くないと仮定して、

通常のテキストエディタ(メモ帳などの)で行う方法があるかなと思います。

例えば、↓なら、

<test> 3<x 、またはx>4 </test>


1.開始タグ・終了タグを別の文字に一括置換する。( <や/>でなく、個別のタグを指定して置き換える)

例えば<test>→{%test%},</test>→{%test%}など

{%test%} 3<x 、またはx>4 {%test%}


2. <や>を"<"や">"に一括置換する。

{%test%} 3<x 、またはx>4 {%test%}


3. 1で置換したタグを一括置換でもとのタグに戻す

{%test%}→<test>,{%test%}→</test>

<test> 3<x 、またはx>4 </test>

要するに、"<"や">"への置換で、タグが影響を受けないように、一旦別の文字に置き換えるということです。

ファイル数及び、タグの種類が少なく、ひとつのファイルのサイズが大きいならこの方法が手っ取り早いかもしれません。

id:riyoooh

具体的に教えていただきありがとうございます。

ソフトを探すよりも、置換する方法の方法の方が早そうですね。

2010/06/01 00:11:31

その他の回答5件)

id:kick_m No.1

回答回数1372ベストアンサー獲得回数54

ポイント18pt

sedの使い方をおぼえてください。

http://kobe.cool.ne.jp/kumanesir/sed_unix/Win_sed.htm

id:riyoooh

ありがとうございます。

2010/06/01 00:12:22
id:hanako393 No.2

回答回数1142ベストアンサー獲得回数87

ポイント19pt

ExmlEditor

http://www.vector.co.jp/soft/win95/net/se205249.html

読み込んで、再出力

id:riyoooh

ありがとうございます。

XMLファイルを読み込む時点で、エラーになってしまいます。

このソフトも整形式でないと読み込めないのでしょうか。

2010/05/30 20:46:43
id:doropon No.3

回答回数94ベストアンサー獲得回数16

ポイント19pt

Windows上ですよね。きっと。

キレイな方法ではありませんが、正規表現の使えるエディタで、

<が>が出現する前に出てきた場合、後者の<を<に置換

>はその逆

最終的にミスマッチが出るかもしれないので、ある程度は手動でやるのは避けられないかと。

DTDですべての要素名がわかっていれば、それ以外の場所に出現する<>を変換できるとは思いますが、

riyooohさんの環境がわからないのでなんとも言えない部分があります。

仕事だったらがばっと直してあげられるのですが、直し方そのものは検索置換で。というところです。

SGMLやXMLなどはきちんと構成されていないと余計に扱いにくくなるので大変です。

id:riyoooh

Windowsです。

XMLの構造はとてもシンプルなのですが、修正の作業は大変だと実感しました。

2010/05/31 01:34:56
id:teks No.4

回答回数2ベストアンサー獲得回数1

ポイント18pt

エラーになる部分だけCDATAセクションにしてから、該当部分をXMLエディタなどで修正されてはいかがでしょうか。たとえば、

<element_A>小なり記号は<と書きます。</element_A>

<element_A><![CDATA[小なり記号は<と書きます。]]></element_A>

にします。これで整形式になるはずです。

id:riyoooh

なるほど。

しかし「エラーになる部分」があまりに多いため、その作業自体が時間がかかってしまいそうです。

2010/05/31 01:21:32
id:Committeeman No.5

回答回数153ベストアンサー獲得回数19

ポイント18pt

perlで組んでもいいとは思うが、面倒だし、このあたりのソフトで対応可能かどうか試してはどうか?

http://www.forest.impress.co.jp/docs/review/20090910_312136.html

id:riyoooh

便利なソフトの紹介ありがとうございます。

しかし整形式のXMLしか取り込めないようなので、適用できませんでした。

2010/05/31 01:19:58
id:khazad-Lefty No.6

回答回数181ベストアンサー獲得回数27ここでベストアンサー

ポイント18pt

そのXMLで使われているタグの種類がそう多くないと仮定して、

通常のテキストエディタ(メモ帳などの)で行う方法があるかなと思います。

例えば、↓なら、

<test> 3<x 、またはx>4 </test>


1.開始タグ・終了タグを別の文字に一括置換する。( <や/>でなく、個別のタグを指定して置き換える)

例えば<test>→{%test%},</test>→{%test%}など

{%test%} 3<x 、またはx>4 {%test%}


2. <や>を"<"や">"に一括置換する。

{%test%} 3<x 、またはx>4 {%test%}


3. 1で置換したタグを一括置換でもとのタグに戻す

{%test%}→<test>,{%test%}→</test>

<test> 3<x 、またはx>4 </test>

要するに、"<"や">"への置換で、タグが影響を受けないように、一旦別の文字に置き換えるということです。

ファイル数及び、タグの種類が少なく、ひとつのファイルのサイズが大きいならこの方法が手っ取り早いかもしれません。

id:riyoooh

具体的に教えていただきありがとうございます。

ソフトを探すよりも、置換する方法の方法の方が早そうですね。

2010/06/01 00:11:31
  • id:Bombastus
    対応するDTDやSchemaがないと、自動変換するのは無理だと思いますよ。
  • id:khazad-Lefty
    出てくるXMLタグの種類はすべて把握していますか?
    DTDやSchemaなどの厳密なモノはなさそうな気がしますがとりあえずタグの種類だけでもわかればなんとか…。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません