【问题标题】:get textcontent including inner node获取包含内部节点的文本内容
【发布时间】:2012-09-07 07:40:28
【问题描述】:

我想打印出"depth 17 - 1 enclosed by 20m contour "

下面是$xml = simplexml_load_file("test.xml");从 xml 文件版本 1.0 加载的 xml 字符串

<object>
  depth 
 <emphasis>
  17 
   <subscript>1</subscript> 
 </emphasis>
  enclosed by 20m contour 
</object>


print_r($Vals->object);
//prints "depth enclosed by 20m contour "


$Vals->object->emphasis.' - '.$Vals->object->emphasis->subscript
//prints "17 - 1"

我可以通过将值"depth" 替换为depth $Vals-&gt;object-&gt;emphasis.' - '.$Vals-&gt;object-&gt;emphasis-&gt;subscript 来打印字符串。这不是一件好事,因为字符串中可能也有一个“深度”,而深度位置也可能有宽度。

到目前为止,我正在尝试使用以下代码,在 Go to Question 看到了

echo dom_import_simplexml($Vals->object)->textContent;

此代码无法完成这项工作,并且还使系统变得如此缓慢。不会产生错误。

【问题讨论】:

    标签: php xml xml-parsing simplexml


    【解决方案1】:

    您正在寻找strval

    鉴于此代码:

    $xml = simplexml_load_file("test.xml");
    

    你可以这样做:

    print strval($xml->emphasis->subscript); // prints '1'
    print strval($xml); //prints 'depth enclosed by 20m contour'
    ...
    

    等等,你可以自己将它们组合成你想要的字符串。

    【讨论】:

    • 它的打印只是'depth enclosed by 20m contour',而不是depth 17 - 1 enclosed by 20m contour ,正如我在问题中描述的那样。
    猜你喜欢
    • 2016-08-18
    • 2020-03-09
    • 2015-02-20
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多