首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SimpleXMLElement获取元素内部文本

使用SimpleXMLElement获取元素内部文本
EN

Stack Overflow用户
提问于 2012-04-20 01:43:19
回答 2查看 7.4K关注 0票数 3

我正在尝试访问xml元素的文本值。我正在使用SimpleXMLElement。我肯定漏掉了一些明显的东西。

代码语言:javascript
复制
<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);

运行上面的代码会得到以下结果:

代码语言:javascript
复制
array (
  0 => 
  SimpleXMLElement::__set_state(array(
     0 => 'NewForm',
  )),
)

看起来很简单。我在获取'NewForm‘的值时遇到困难

我试过了

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

遍历$result[0]的子级。

有人能帮我指引一下正确的方向吗?这样我就可以从title元素中获取文本了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 02:22:30

对于你的例子,这对我很有效:

代码语言:javascript
复制
echo (string)$result[0];
票数 15
EN

Stack Overflow用户

发布于 2012-04-20 02:22:38

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

代码语言:javascript
复制
[...]
$result = $xml->xpath('//h:title');
echo current($result);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10233732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档