0

次の XML がすべて MSSQL DB の 1 つのセルに含まれています。

<receipt reference="INT000003" major="2" minor="14.804" beta="">

<dates id="Booking Dates">    
<item id="Date of Booking">23 May 2013 - 17:09</item>     
</dates>   

<advertisement id="advertisement details">
<item id="Booked by">Mr System Administrator</item>
<item id="Brand or Product">Testing</item>
<item id="Priority">500</item>
</advertisement>

</receipt>

<item id="Brand or Product">Testing</item>PHPベースのWebページで使用するために、そのセル(具体的には「テスト」)から値を取得したいと考えています。このタイプの XML を読み取って値を検索する PHP を知っている人はいますか?

ありがとう。

4

2 に答える 2

1

でDOMXPath::queryを使用できますPHP。最初に、XML通常どおりテーブルから全体を選択してから、正しい要素を取得します。

<?php
$xml = <<<END
<receipt reference="INT000003" major="2" minor="14.804" beta="">
  <dates id="Booking Dates">    
    <item id="Date of Booking">23 May 2013 - 17:09</item>     
  </dates>   

  <advertisement id="advertisement details">
    <item id="Booked by">Mr System Administrator</item>
    <item id="Brand or Product">Testing</item>
    <item id="Priority">500</item>
  </advertisement>

</receipt>
END; //you would load it from the table

$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$query = "//advertisement/item";

$items = $xpath->query($query);

foreach ($items as $item) {
  echo $item->nodeValue;
}
?>

これは出力されます

Mr System Administrator
Testing
500

特定のIDの値が必要な場合は、使用できます

<?php
$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$query = "//advertisement/item[@id='Brand or Product']";

$items = $xpath->query($query);

foreach ($items as $item) {
  echo $item->nodeValue;
}

出力:

Testing
于 2013-05-28T11:33:37.630 に答える