Php 基于属性的XML值解析

Php 基于属性的XML值解析,php,xml,xml-parsing,simplexml,Php,Xml,Xml Parsing,Simplexml,我的问题是,如何访问DESCRIPTION属性languageId=1下的DESCRIPTION 我可以用foreach实现这一点: $item->attributes()->ItemID 但这只是第一个描述,而不是属性languageId=1的描述 谢谢你的建议 还可以使用xpath获取特定值。例如: $desc2 = $item->ITEMDESCRIPTION->DESCRIPTION[1]; $value=$xml->xpath('itemsdescript

我的问题是,如何访问DESCRIPTION属性languageId=1下的DESCRIPTION

我可以用foreach实现这一点:

 $item->attributes()->ItemID
但这只是第一个描述,而不是属性languageId=1的描述


谢谢你的建议

还可以使用
xpath
获取特定值。例如:

$desc2 = $item->ITEMDESCRIPTION->DESCRIPTION[1];

$value=$xml->xpath('itemsdescription/DESCRIPTION[@languageId=“1”]”);echo$value[0];echo$value[1]…完成了任务。谢谢你的帮助!当然@Iztok没问题
foreach ($item->ITEMDESCRIPTION->DESCRIPTION as $desc) {
                if ($desc['languageId'] == '1') {
                    echo "<td>" . $desc . "</td>";
                }
}
$desc2 = $item->ITEMDESCRIPTION->DESCRIPTION[1];
$xml_string = '<ITEMS> <ITEM ItemID="XY"> <ItemSearchName /> <ITEMDESCRIPTION> <DESCRIPTION descriptionType="T" descriptionTypeTitle="Short" languageId="1" language="English">English description</DESCRIPTION> <DESCRIPTION descriptionType="T" descriptionTypeTitle="Short" languageId="2" language="France">Fance description</DESCRIPTION> </ITEMDESCRIPTION> <ItemType>B</ItemType> <ItemDepartment /> <ITEMDIMENSIONS> <ItemDimensionUOM>m</ItemDimensionUOM> </ITEMDIMENSIONS> <ItemGrossWeihgt>0.00</ItemGrossWeihgt> </ITEM></ITEMS>';
$xml = simplexml_load_string($xml_string);
$value = $xml->xpath('//ITEMDESCRIPTION/DESCRIPTION[@languageId="1"]')[0];
echo (string) $value; // English description
foreach($xml->ITEM->ITEMDESCRIPTION->DESCRIPTION as $desc) {
    if($desc->attributes()['languageId'] == 1) {
        echo (string) $desc; // English description
    }
}