繁体   English   中英

php DOMDocument-获取外部节点并进行保护

[英]php DOMDocument - Get outer node and Protect <![CDATA[]] blocks as string

我有一个xml文件,其中一些节点有一个CDATA块,如下所示:

<item> 
  <content>OneWord</content>
</item>
<item> 
  <content><![CDATA[Some Text or Serialized arrays]]></content>
</item>

我试图让外部节点像下面这样:

$file = 'file.xml';
$contents = file_get_contents( $file );
$dom = new DOMDocument( '1.0', 'utf-8' );
$dom->loadXML( $contents, LIBXML_NOCDATA );
$xpath = new DOMXPath( $dom );

// -- get outer
$item = $xpath->query( './item' )->item(1);
$str = $dom->saveXML($item);
var_dump($str);

并且它打印不带CDATA块的项目节点,但我希望该节点具有CDATA块。

谢谢

它不是像删除LIBXML_NOCDATA选项(“将CDATA作为文本节点合并 ”)那样简单吗?

为了我,

$dom = new DOMDocument( '1.0', 'utf-8' );
$dom->loadXML( $contents );
$xpath = new DOMXPath( $dom );

// -- get outer
$item = $xpath->query( './item' )->item(1);
$str = $dom->saveXML($item);
var_dump($str);

输出

string '<item>
 <content><![CDATA[Some Text or Serialized arrays]]></content>
</item>' (length=78)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM