<?xml version="1.0" encoding="utf-8"?>
<mainXML>
<items>
<item category="Dekorationer" name="Flot væg" description="Meget flot væg. Passer alle stuer." price="149" />
<item category="Fritid" name="Fodbold" description="Meget rund bold. Rørt af messi." price="600" />
</items>
</mainXML>
我怎么读这个?
所以我可以像php循环那样输出类别,名称和描述,例如?
我试着用这个开始:
$doc = new DOMDocument();
$doc->load( 'ex.xml' );
$items = $doc->getElementsByTagName( "item" );
foreach( $items as $item )
{
$categorys = $item->getElementsByTagName( "category" );
$category = $categorys->item(0)->nodeValue;
echo $category . " -- ";
}
答案 0 :(得分:2)
我推荐PHP的simplexml_load_file()
$xml = simplexml_load_file($xmlFile);
foreach ($xml->items->item as $item) {
echo $item['category'] . ", " . $item['name'] . ", " . $item['description'] . "\n";
}
更新,错过了额外的标签。
答案 1 :(得分:2)
category
是一个属性(不是标记)。见XMLWikipedia。要通过DOMElement
获取,请使用getAttribute()
Docs:
foreach ($items as $item)
{
$category = $item->getAttribute('category');
echo $category, ' -- ';
}
description
相同,只需更改要获取的属性名称:
foreach ($items as $item)
{
echo 'Category: ', $item->getAttribute("category"), "\n",
'Description: ', $item->getAttribute("description"), ' -- ';
}
答案 2 :(得分:1)
这是一个使用PHP的SimpleXML的示例,特别是simplexml_load_string函数。
$xml = '<?xml version="1.0" encoding="utf-8"?>
<mainXML>
<items>
<item category="Dekorationer" name="Flot væg" description="Meget flot væg. Passer alle stuer." price="149" />
<item category="Fritid" name="Fodbold" description="Meget rund bold. Rørt af messi." price="600" />
</items>
</mainXML>';
$xml = simplexml_load_string( $xml);
foreach( $xml->items[0] as $item)
{
$attributes = $item[0]->attributes();
echo 'Category: ' . $attributes['category'] . ', Name: ' . $attributes['name'] . ', Description: ' . $attributes['description'];
}