我正在尝试访问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]
的孩子进行迭代。
有人可以帮助指导我正确的方向,以便我可以从标题元素中获取文本吗?
答案 0 :(得分:13)
这适用于我的例子:
echo (string)$result[0];
答案 1 :(得分:1)
在选择数组中的项目后尝试强制转换为字符串:
[...]
$result = $xml->xpath('//h:title');
echo current($result);