1

通常、解析する必要のあるXMLファイルは次のようになります。

<row id="1">
    <title>widget<title>
    <color>blue<color>
    <price>five<price>
</row>

次に、次のように解析します。

$xmlstr_widget = file_get_contents($my_xml_feed);
$feed_widget = new SimpleXMLElement($xmlstr_widget);

foreach($feed_widget as $name) {
    $title = $name->title;
    $color = $name->color;
    $price = $price->price;
  }

よく働く!しかし、今では少し異なる形式のxmlがあり、xml解析の経験があまりないため、少し困惑しています。

<Widget Title="large" Color="blue" Price="five"/>
<Widget Title="small" Color="red" Price="ten"/>

それをもう少し掘り下げて、適切に解析するにはどうすればよいですか?私はいくつかのことを試しましたが、成功しませんでした。

したがって、問題は、別のxmlフィードを使用して以下のようなものを試してみると、結果をエコーできないことです。

foreach($feed_widget as $name) {
    $title = $name->title;
    $color = $name->color;
    $price = $price->price;
  }
4

4 に答える 4

2

メソッドを使用しattributes()て、要素の属性のリストを取得できます。

foreach ($xml as $element) {
    foreach ($element->attributes() as $name => $value) {
        echo "$name = $value\n";
    }
}

出力:

Title = large
Color = blue
Price = five
Title = small
Color = red
Price = ten
于 2012-06-29T17:27:49.990 に答える
2

連想配列の要素にアクセスするのと同じように、属性にアクセスできます。

foreach($feed_widget as $name) {
    $title = $name['Title'];
    $color = $name['Color'];
    $price = $name['Price'];
}
于 2012-06-29T17:28:16.873 に答える
1

要素の attributes() を使用する必要があります。

たとえば、次のようにします。

$feed_widget -> attributes() -> Color;

あなたに「青」を与えるでしょう

リソース: http://www.w3schools.com/xml/xml_attributes.asp

于 2012-06-29T17:26:56.327 に答える
1
<Widget Title="large" Color="blue" Price="five"/>

の省略形です

<Widget Title="large" Color="blue" Price="five"></Widget>

Title="large" Color="blue" などは XML タグの ATTRIBUTES です。質問で提供した foreach ステートメントは、XML タグ (開始タグと終了タグの間に表示されるもの) の CONTENTS を抽出します。CONTENTS は長さゼロの文字列であるため、その方法では何も得られません。

http://www.php.net/manual/en/simplexmlelement.attributes.php

于 2012-06-29T17:30:50.120 に答える