簡體   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