XML:
<?xml version="1.0"?>
<AA>
<Ptest>
<test><test/>
<test1/>
<Ptest>
<Ctest>
<test><!CDATA[123]]><test/>
<test1/>
</Ctest>
<Ctest>
<test><!CDATA[123]]><test/>
<test1/>
</Ctest>
<Ctest>
<test><!CDATA[123]]><test/>
<test1/>
</Ctest>
</AA>
PHP:
$root = $dom->createElement('AA');
$root = $dom->appendChild($root);
$aa=[1,2,3];
$EMR= $dom->getElementsByTagName('AA')->item(0);
foreach ($aa as $key=>$value){
$Ctest=$dom->createElement('Ctest');
$Ctest->appendChild( $dom->createElement('test'));
$Ctest->appendChild( $dom->createElement('test1'));
$EMR->appendChild($Ctest);
$Ctest_test=$dom->getElementsByTagName('Ctest')->item($key);
foreach ($Ctest_test->childNodes as $index=>$node){
//$node->ownerDocument->createCDATASection(123);
if ($node->nodeName=='test'){
}else {
}
}
}
想請問各位大大,如果要在指定的TAG中加CDATA要怎麼append,目前卡在已經抓到指定的TAG了但不知道怎麼加入CDATA的值進去,只用nodeValue只能變成普通的字串不能變成CDATA格式的值。
參考這篇
看看合不合用
如果你是要修改
原有的 CDATA 值,請參考上面
如果你是要在建立 XML 時同時 新增
CDATA 值,請參考下面
<?php
$dom = new DOMDocument();
$root = $dom->createElement('AA');
$root = $dom->appendChild($root);
$xpath = new DOMXpath($dom);
$aa=[1,2,3];
$EMR= $dom->getElementsByTagName('AA')->item(0);
$Ctest=$dom->createElement('Ptest');
$Ctest->appendChild( $dom->createElement('test'));
$Ctest->appendChild( $dom->createElement('test1'));
$EMR->appendChild($Ctest);
foreach ($aa as $key=>$value){
$Ctest=$dom->createElement('Ctest');
$Ctest->appendChild( $dom->createElement('test'));
$Ctest->appendChild( $dom->createElement('test1'));
$EMR->appendChild($Ctest);
$Ctest_test=$dom->getElementsByTagName('Ctest')->item($key);
foreach ($Ctest_test->childNodes as $index=>$node){
if ($node->nodeName=='test'){
$ct = $node->ownerDocument->createCDATASection(123);
$node->appendChild($ct);
} else {
}
}
}
echo $dom->saveXml();
?>
另外囉嗦一句
如果你是工作/課業上需要
才 study XML
如果只是單純的「學習」
那你可以不用再花時間在這上面
因為已經很少系統在使用 XML 了
連聽過的人都不多了