2017-01-03 25 views
0

XMLソースにd2LogicalModelマークアップを使用しているようですが、PHPのSimpleXMLを使用してデータを抽出する方法については本当に苦労しています。PHPでSImpleXMLを使用してXMLデータにアクセスする方法

私は以下のXMLのカットダウン版を含んでいます:どのようにしてcarParkIdentityを抽出しますか? 特定のIDにアクセスするにはどうすればよいですか?

次に、残りのデータを自分で把握することができます。

ありがとうございました!

<d2lm:d2LogicalModel xmlns:d2lm="http://datex2.eu/schema/1_0/1_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xalan="http://xml.apache.org/xslt" xmlns:java="http://xml.apache.org/xalan/java" modelBaseVersion="1.0" xsi:schemaLocation="http://datex2.eu/schema/1_0/1_0 http://datex2.eu/schema/1_0/1_0/DATEXIISchema_1_0_1_0.xsd"> 
    <d2lm:exchange>...</d2lm:exchange> 
    <d2lm:payloadPublication lang="en" xsi:type="d2lm:SituationPublication"> 
    <d2lm:situation id="CPN0017"> 
     <d2lm:situationRecord id="CPN0017_1" xsi:type="d2lm:CarParks"> 
     <d2lm:situationRecordCreationTime>2017-01-03T10:47:41</d2lm:situationRecordCreationTime> 
     <d2lm:situationRecordVersion>1</d2lm:situationRecordVersion> 
     <d2lm:carParkIdentity>Chapelfield, Chapelfield Road, N:CPN0017</d2lm:carParkIdentity> 
     <d2lm:carParkOccupancy>77.0</d2lm:carParkOccupancy> 
     <d2lm:carParkStatus>enoughSpacesAvailable</d2lm:carParkStatus> 
     </d2lm:situationRecord> 
    </d2lm:situation> 
    </d2lm:payloadPublication> 
</d2lm:d2LogicalModel> 
+0

同じ見出しをGoogleに貼り付けようとしましたか?そうでなければ貼り付けてチュートリアルと答えをたくさん得るでしょう.http://php.net/manual/en/simplexml.examples-basic.php –

+0

それから他のすべてが失敗したら[マニュアルを読む](http:// php .net/manual/en/simplexml.examples-basic.php)何か問題が起きた場合は何かをコードしてから復帰してください。 – RiggsFolly

+0

SimpleXMLのサンプルとドキュメントを読んだことがありますが、私は困難を抱えている特定のマークアップです。 多分私は質問を間違って言いました - 私は基本レベルでSimpleXMLの助けを必要としません、私はSimpleXMLを使用して私は最小の運を持っているこの特定の奇妙なマークアップのための助けが必要です。 – nomaki

答えて

1

コードのこの作品のような単純な:

$xml = simplexml_load_file('/PATH/TO/YOUR/FILE.XML'); 

foreach ($xml->xpath('//d2lm:carParkIdentity') as $child) { 

    echo $child; 

} 

はまた、あなたは、XPath構文hereの表情を取るために歓迎以上です。

+0

私が提供したコードは、d2lm:carParkIdentityテキスト値を返します。それがあなたの質問だったのです... –

+0

ああ!最初は二重スラッシュとは何ですか?それは途中で ':'を逃れることですか?私はそれが$ xml-> payloadPublication->状況などのようにそれらにアクセスしようとしていたので、私が間違っているところだと思います! 編集:うん前のコメントを申し訳ありません、それは上のコメントに行くことを意味しました..これは素晴らしいソリューションです! – nomaki

+0

@nomaki XML文書からデータを取得できるXPathクエリです。私はXPathのドキュメントへのリンクで私の答えを更新しました。 –

関連する問題