
XMLファイルを配列としてとってこれる
XML_unserializeというライブラリを使用して
XMLファイルに含まれるデータをとってPHPで利用することが
できたのですが、ここで一つ大きな問題が発生しました。
XML_unserializeをつかうと
<XMLTAG>
取り出したいデータ
</XMLTAG>
↓
array(
[XMLTAG] = 取り出したいデータ
)
と、たしかに取り出したいデータを配列に変換することができます。
しかし、取り出したいデータの中にタグが含まれていた場合
例えば
<XMLTAG>
<div>取り出したいデータ</div>
</XMLTAG>
とかになっていると
<div>もXMLと判断されてしまって
必要なデータがうまくとってこれないのです。
正規表現でエスケープさせるにしても数が膨大ですし、
XMLタグ名に実際にHTMLで使われている
タグ名が使われているとも限りません。
どうすれば、
”XMLの中に入っているHTML等のタグを含むデータ”をうまくとってくることが
できるのでしょうか?
No.1ベストアンサー
- 回答日時:
「取り出したいデータ」がどのタグ(要素)にあるのか事前にわからないなら、シリアライズしてして配列にいれてしまうと、正規表現でサーチするしかないですね。
サーチする必要があるなら、XML本来の利点を生かすためにもXMLのまま扱ってDOM XML関数とか、SimpleXML関数を使うか、XMLパーサー関数で、
要素のハンドラー関数を用意して必要なデータを探します。
回答ありがとうございます。
さらに、いろいろ調べた結果
$match = "/(<)(((?![A-Z\/\?])|\/(?![A-Z]))[^\/^>]*)(\/?>)/e";
$replace = "'<\\2>'";
$XMLSRC = preg_replace($match, $replace, $XMLSRC);
という正規表現で取り除けることが分かりました。
XMLが
<Xml>、<Image>等と、要素名の一文字目が
大文字のアルファベットで書かれていれば
それを利用して、XMLかどうか判別するというものです。
当然抽出文字列の中に<Div>とかはいってたら
それも、対象になってしまうので苦肉の策もいいところですが
とりあえず、これでいってみます。
が、外部からとろうとするデータに不定期にタグが入っていたりすると
データの取得に不具合が生じるというのは
どう考えても、使いにくいので、何か対策はあるのでしょう。
そもそも、XMLで出力されるデータに
タグを含ませるという設計自体がナンセンスなのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
EXCELVBAでSQLserverからデータ...
-
メモ帳(テキストデータ)をExc...
-
【エクセル】測定時間がバラバ...
-
アクセス2000で画像データ...
-
特定のデータの抽出方法を教え...
-
パースとはなんですか?
-
Delphiで設定データの保存には...
-
多量のSUMIF式を軽くしたい
-
二分探索の平均探索回数
-
この行は既に別のテーブルに属...
-
Accessで該当データにフラグを...
-
配列でデータが入っている要素...
-
エクセルのtoday関数を使用して...
-
0が含まれる幾何平均が「#NUM!」
-
VBA 判定文で理解できない結果...
-
モジュラス103の算出方法について
-
LoadPictureしたイメージデータ...
-
ブレーカー落ちで壊れたりしな...
-
[VBA] CountIfに変数を使いたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
配列でデータが入っている要素...
-
多量のSUMIF式を軽くしたい
-
ACCESSからEXCELに出力する際、...
-
この行は既に別のテーブルに属...
-
特定のデータの抽出方法を教え...
-
Accessで該当データにフラグを...
-
Excel VBAでのオートフィルター...
-
ユーザーフォームのテキストボ...
-
[C言語] コメント文字列を無視...
-
DataGridViewのデータの引渡し...
-
エクセルで2つの時系列のデー...
-
VBA 空白セルを削除ではない方...
-
CString型の文字列連結について
-
S9タイプからXタイプにデータ...
-
C# でDataTableの更新を高速化...
-
VBA 円グラフ 特定条件に一致し...
-
二分探索の平均探索回数
おすすめ情報