2017-02-17 10 views
1

私は、RegExを使ってXMLファイルから情報を取得することにかなり新しいです。私はの配列に表示するために各セクションの主な情報を取得しようとしていますが、それを理解することはできません。私はこれに可能な助けを感謝します。誰かがこのRegEx問題を手伝ってもらえますか?

私は各セクションを分割して情報を返したいと思いますが、結果の配列をテーブルに表示するために、このすべてをまとめて配置する方法はわかりません。

私が使用しているXMLがここで見つけることができます: 国道気象台のデータ http://data.tii.ie/Datasets/Its/DatexII/WeatherData/Content.xml

私は、私が使用したい部品のために作成した正規表現は、次のとおりです。

ロードID

(NRA\d+) 

日&時間

(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}) 

気温

<airTemperature>(\d{1,2}.\d{1})<\/airTemperature> 

風向

<windDirectionCompass>(\w+)<\/windDirectionCompass> 

風速

<windSpeed>(\d{1,3}.\d{1})<\/windSpeed> 

ロード温度

<roadSurfaceTemperature>(\d{1,3}.\d{1})<\/roadSurfaceTemperature> 

これは私が新しい分野に自分のコーディングスキルを開発しようとしていますように私はそれを本当に感謝どのように動作するか、誰もが私を見ることができれば。ありがとう!

+8

を使用して:ここで

は、あなたがこれを扱うことができる方法は何ですか? https://www.w3schools.com/Php/php_xml_simplexml_read.asp –

+0

@ChinLeung私はこれにかなり新しいので、私は学び、発見することがたくさんあります!私はこれを見て、ありがとう! – Ryan

+1

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags?rq=1 – AbraCadaver

答えて

0

はい@Chin Leungが指摘したように、XML Parserがこれを処理する最も良い方法です。

$xml = file_get_contents('http://data.tii.ie/Datasets/Its/DatexII/WeatherData/Content.xml'); 
     $xml_object = simplexml_load_string($xml); 
     $publication = $xml_object->payloadPublication; 
     $siteMeasurements = $publication->siteMeasurements; 
     foreach($siteMeasurements as $siteMeasurement) 
     { 
      $road_id = str_replace('NRA', '', $siteMeasurement->measurementSiteReference); 
      etc.. 
     } 

なぜあなたはXMLパーサを使用していないhttp://us2.php.net/manual/en/function.simplexml-load-string.php

http://us2.php.net/manual/en/function.file-get-contents.php

関連する問題