使用属性值获取xml元素

时间:2016-03-14 07:57:08

标签: php xml attributes

我有这个xml。 我需要做的是使用属性硬编码id获取名称和visiturl。我不希望它循环。我只需要打印name

id=3

我知道我可以使用foreach获取所有数据,或者我可以使用:

获得第一个id
$op = simplexml_load_file($file);
echo $op->urldata[0]->url->attributes(); //print 1 gets the first id.

检查了一些示例in php manual,但无法找到我正在寻找的内容。我试过了:

echo $op->urldata[0]->url->attributes()->{'1'}->name; //prints nothing

这可能直接得到我想要的吗?

<urldata>
    <url id="1">
        <name>Google</name>
        <visiturl>www.google.com</visiturl>
    </url>
    <url id="2">
        <name>Google1</name>
        <visiturl>www.google1.com</visiturl>
    </url>
    <url id="3">
        <name>Google2</name>
        <visiturl>www.google2.com</visiturl>
    </url>
    <url id="4">
        <name>Google3</name>
        <visiturl>www.google3.com</visiturl>
    </url>
    <url id="5">
        <name>Google4</name>
        <visiturl>www.google4.com</visiturl>
    </url>
</urldata>

1 个答案:

答案 0 :(得分:-1)

尝试

echo $op->xpath('//url[@id="3"]/name/text()')[0];

(此信用转到@ splash58)

您可能希望在W3Schools上阅读此xpath教程。这对我帮助很大。