使用SimpleXMLElement获取元素内部文本

时间:2012-04-19 17:43:19

标签: php simplexml

我正在尝试访问xml元素的文本值。我正在使用SimpleXMLElement。我不得不遗漏一些明显的东西。

<h:html xmlns:jr="http://openrosa.org/javarosa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2002/xforms">
  <h:head>
    <h:title>NewForm</h:title>      
  </h:head>
</h:html>

$xml = new SimpleXMLElement($resp);
$xml->registerXPathNamespace('h', 'http://www.w3.org/1999/xhtml'); 
// I have tried with and without the namespace (it doesn't seem to make a difference)

$result = $xml->xpath('//h:title');
debug($result);

运行上面的代码给了我:

array (
  0 => 
  SimpleXMLElement::__set_state(array(
     0 => 'NewForm',
  )),
)

似乎很简单。我很难获得'NewForm'的价值

我试过了

$result[0]$result[0]->{0}$result[0][0]

通过$result[0]的孩子进行迭代。

有人可以帮助指导我正确的方向,以便我可以从标题元素中获取文本吗?

2 个答案:

答案 0 :(得分:13)

这适用于我的例子:

echo (string)$result[0];

答案 1 :(得分:1)

在选择数组中的项目后尝试强制转换为字符串:

[...]
$result = $xml->xpath('//h:title');
echo current($result);