2010-12-30 8 views
1

ちょっと、基本的に大量のXML文書があり、多くのノードと属性値とそのすべてのジャズがあります。XML文書全体をPHP変数に自動的に解析します

私はXML/PHPでひどいので、非常に怠惰でありたいと思っており、この機会にGoogleが失敗したようです。

XML文書内のすべての要素を取得してPHP変数にすることが可能な場合は、

私のXMLドキュメントは、多分...

<wrap> 
<sub></sub> 
    <subsub></subsub> 
<sub></sub> 
    <subsub></subsub> 
<sub2></sub2> 
<sub3 value=''></sub3> 
<sub4 value=''></sub4> 
</wrap> 

のようなものだったのであればそれは再帰的にどんなタグ/ノードの名前のPHP変数にそれをすべて文書変換をチェックしないだろう。例えば、彼らは多分のように見えるだろう。 $折り返し; $ sub 1; $ sub [2]; $ sub2; $ sub3; $ sub4; $ sub3 ['value']; $ sub4 ['value'];

だから、8人の子供のように深く掘り下げて掘り下げるのは賢明でしょうか?

これは可能ですか、 $ sub1 = $ xml-> wrap-> sub 1のように入力する必要があります。なぜなら、1k行以上のコードは私が存在したくないからです。 XMLフィードは、お時間をHERE

おかげでちょうど包みなさい:)

+0

のように$ XMLオブジェクト内の要素を参照することができますありますかなりの数、DOM> PHPサイト上のSimpleXMLのドキュメントのためのcommnetsの配列のサンプル機能します。http: //ca2.php.net/simplexml –

+0

xmlファイル全体を配列変数に格納することができます。この配列はサブ配列と値を持ちます。解析後、配列から任意の値を直接参照できます。 – tHeSiD

+0

@tHeSiDあなたはsimplexmlでそれをどうやってやりますか? – Owen

答えて

1
$xml = simplexml_load_string($response); 
// $response is your xml file/output string 

あなたは、この

$xml->children('yourschema')->children('yoururn')->Tag1->Tag2 
0

あなただけの、元のように複雑な何かになってしまいますようご提案のアプローチは本当に、意味がありません

XMLは、解析するのと同じくらい多くの努力を必要とします。そのため、DOM parserまたはSimpleXMLを使用することは、おそらく進んでもいい方法です。

私はxpath(DOMまたはSimpleXML)のようなものが、特定の情報を抽出しようとしているだけで、XMLの大部分をあまり気にしないと思うと思う。

+0

imは現在simplexml iveを使用していますので、実際には触れていないXML stuffをどのように使用するか分かりません。しかし、私はXMLシートからのデータの98%が必要です。あなたは私がsimplexmlを使うことを提案していると言っていますが、私はまだそれを効果的に使って私が望むことをすることはできません。phivenetで一日中読んでいますが、何も見つけることができません/ – Owen

0

XMLデータをsimpleXML要素に読み込むと、簡単にアクセスできます。

$xml = new SimpleXMLElement($input_xml_string); 
foreach($xml->sub as $value) { 
    echo $value->subsub; 
} 

予約語のように注意してください。あなたはブラケットの$ xmlの中でそれを包むする必要があります - > {サブ}

は、あなたが子供を取り除くように、より複雑なものを行うためにDOMオブジェクトを使用する必要がありますhttp://www.php.net/manual/en/simplexml.examples-basic.php

をお読みください。

関連する問題