SimpleXML获取节点值

时间:2011-04-08 10:06:44

标签: php xml simplexml

假设我有以下XML结构:

<?xml version="1.0" encoding="UTF-8"?>
<main>
    <parent>
        <child1>some value</child1>
        <child2>another value</child2>
    </parent>
</main>

我创建了XML的变量,现在我想得到child1的值,所以我使用SimpleXML:

$xml = new SimpleXMLElement($xml);
$this->xmlcode = (string) $xml->main->parent->child1;

但我收到此消息:注意:尝试在第x行的/x.php中获取非对象的属性

我也尝试使用$ xml-&gt; parent-&gt; child1,但没有成功。

任何??

3 个答案:

答案 0 :(得分:23)

$xml = new SimpleXMLElement($xml);
$this->xmlcode = (string) $xml->parent[0]->child1;

答案 1 :(得分:2)

在这里可以找到使用XP和SimpleXMLElement的XP的一个很好的例子 http://www.php.net/manual/en/class.simplexmlelement.php#95229

// Find the topmost element of the domDocument
$xpath = new DOMXPath($xml);
$child1 = $xpath->evaluate('/main/parent/child1')->item(0); 

答案 2 :(得分:0)

xpath 的变量(以及如何获取名称中带有破折号的节点的内容):

<?xml version="1.0" encoding="UTF-8"?> <main>
<parent>
    <child-1>some value</child-1>
    <child-2>another value</child-2>
</parent> </main>
$xml = simplexml_load_string($content);
$node_value= (string)$xml->xpath('parent/child-1')[0];

$ node_value的结果:

“某些价值”