2011-06-18 22 views
0

私はPHPを使って与えられたXMLファイルを読み込もうとしています。私は基本的にファイルのさまざまな要素を書きたいと思っていますが、私は本当にこれを行う方法に苦労しています。PHP読み込みXMLファイル

Here's some sample XML input.

は、私は次のように書き出すことができるようにしたい:私は本当にこの1を見つけ出すのに苦労しています

E DBID - N 
E DBID - RDBID - N 
E DBID - RDBID - O 

、任意の助けを感謝していただければ幸いです。

+0

を実行していました。 – Spudley

答えて

2

xmlの読み取り/生成にはSimpleXMLElementを使用します。問題は、あなたが持っているということであるかを正確に知らなくても、正確な助言を与えるために、そのハードhttp://www.php.net/manual/en/book.simplexml.php

2

ちょうど見てください。しかし、私はすべての基盤をカバーするために全力を尽くします。

まず、指定したURLから生のXMLを読み込む必要があります。あなたがすでにこれを管理していたら、このパラグラフをスキップしてください。もしそうでなければ、読んでください。 PHP環境の設定によっては、単純なfile_get_contents()コールでファイルを読むことができますが、cURLを使用する必要があります。 cURLはもっと複雑ですが、PHPがファイル処理関数を介してURLを開く機能を無効にしている場合には必要になることがあります。

あなたは生のXMLを持ってたら、SimpleXMLはライブラリを使用してオブジェクト構造に変換することができますが:

PHPは、XMLやHTML文書を扱うための組み込みのAPIの数を持っていますが、SimpleXMLのがありますあなたが使いたいもの。 PHPマニュアルはそれを使用する方法についていくつかの良い例を持っている - http://www.php.net/manual/en/simplexml.examples-basic.php

がSimpleXMLオブジェクトモデルにあなたの生のXML文字列の読み込みを参照シンプルなワンライナーです:

$xmlstructure = new SimpleXMLElement($xmlstring); 

今、あなたは要素を参照することができますし、単にオブジェクトのプロパティとしてXMLの属性、このような何か:

foreach($xmlstructure->ROOT->E as $e) { 
    print "E DBID - ".$e['DBID']."<br />"; 
} 

(私は要素を使用して、あなたが提供されるリンクから属性名が、あなたはあなたの正確なニーズに合わせて、このコードを調整する必要がありました。それはです例として意図されているので、私はtesを持っていないあなたがそれに慣れている場合、SimpleXML APIはXPathを使って要素や属性を参照することもできます。詳細については、私が参照したマニュアルページの例を参照してください。

希望に役立ちます。

+0

おかげさまでありがとうございました。私はこれを3日間作業しており、ゆっくりとすべてを理解し始めています。 私はこれを試してみました: ROOT-> E as $ e){ print "E DBID - "。$ e ['DBID']。 "
"; } ?> エラーが発生しました:http://pokerintegrity.net/test.php 私は間違っている可能性がありますか? :( –

+0

@RichardG - 'print_r()'を使って '$ xmlstructure'変数の実際の構造を見てください;これはあなたが' foreach() 'ループでそれをどのように参照する必要があるかを知るのに役立ちます。サンプルコードをテストしていないので、おそらく完全に正しいとは限りません。それはあなたの仕事の出発点です。 – Spudley

2

あなたはコードの下のファイルを使用している場合は、XML

<?php 
$string = <<<XML 
<?xml version='1.0'?> 
<document> 
<title>Zweiundvierz...?</title> 
<from>Joe</from> 
<to>Jane</to>  
</document> 
XML; 

$xml = simplexml_load_string($string); 
print"<pre>"; 
print_r($xml); 
?> 

を読み取るためにPHPコードの下に検索:

<?php 
if (file_exists('test.xml')) { 
    $xml = simplexml_load_file('test.xml'); 
    print"<pre>"; 
    print_r($xml); 
} 
?> 
+0

ここにあります:http://php.net/manual/de/function。 simplexml-load-string.php – mplungjan

0

は.NOT、マットはこれはあなたのprobleを解決することができますこと、これを見て確かに、xsdファイルのために同じことをやっています。でも、私のためのポインタだけで、

[XML解析]あなたが抱えている正確にどのような問題に指定たい場合、それが役立つだろう http://www.gayadesign.com/diy/reading-xml-with-php/

関連する問題