如何用PHP解析这个XML

如何用PHP解析这个XML,php,xml,Php,Xml,通常,我必须解析的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($xml

通常,我必须解析的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"/>

您需要使用元素的attributes()

例如,你想做什么

$feed_widget -> attributes() -> Color;
会给你“蓝色”


资源:

您需要使用元素的attributes()

例如,你想做什么

$feed_widget -> attributes() -> Color;
会给你“蓝色”

资源:

您可以使用该方法获取元素的属性列表:

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
可以使用该方法获取元素的属性列表:

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

可以像访问关联数组中的元素一样访问属性:

foreach($feed_widget as $name) {
    $title = $name['Title'];
    $color = $name['Color'];
    $price = $name['Price'];
}

可以像访问关联数组中的元素一样访问属性:

foreach($feed_widget as $name) {
    $title = $name['Title'];
    $color = $name['Color'];
    $price = $name['Price'];
}

是的缩写

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

Title=“large”Color=“blue”等是XML标记的属性。您在问题中提供的foreach语句提取XML标记的内容(出现在开始标记和结束标记之间的内容)。这样做不会得到任何结果,因为内容是长度为零的字符串


是的缩写

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

Title=“large”Color=“blue”等是XML标记的属性。您在问题中提供的foreach语句提取XML标记的内容(出现在开始标记和结束标记之间的内容)。这样做不会得到任何结果,因为内容是长度为零的字符串


嗯,你有一个例子,你在解析XML–到底是什么问题?嗯,你有一个例子,你在解析XML–到底是什么问题?完美,我需要的缺失部分!太好了,我需要的那一块!