php part
<?php
$f = fopen( "temp.xml","r" );
$str = "";
while( $line = fgets($f) ){
if( !($line[1]=='?' || $line[1]=='b' || $line[2]=='b') ){
$str.= $line."<br>";
}
}
fclose( $f );
$xdoc = new DomDocument;
$xdoc->Load('text.xml');
$body = $xdoc->getElementsByTagName('textBody')->item(0);
$txtNode = $xdoc ->createTextNode ( $str );
$body -> appendChild($txtNode);
$test = $xdoc->save("text.xml");
?>
xml file updated.
<textBody>
<br>
<br> &#13;
<br><font>Heading Here...</font>&#13;
<br><font>Text Here...</font>&#13;
<br>
</textBody>
I want to create child in xml file but the special characters are converted into their codes as shown above.
I want the output as
<br><br>
<br><font>Heading Here </font>
<br><font>Text Here</font>
<br>发布于 2011-08-20 17:37:35
textNode只包含字符数据。
如果您希望创建并插入包含多个元素节点的片段,请使用DOMDocument::createDocumentFragment
$xdoc = new DomDocument;
$xdoc->Load('text.xml');
$body = $xdoc->getElementsByTagName('textBody')->item(0);
$fragment = $xdoc ->createDocumentFragment ();
$fragment->appendXML( $str );
$body -> appendChild($fragment);请注意: appendXML()不是DOM的一部分,它是一个实现。
如果您希望以一种“干净”的DOM方式完成此操作,请创建一个新文档,使用loadXML()加载字符串,然后将结果导入到其他文档中。
发布于 2011-08-20 17:43:13
$txtNode = $xdoc ->createTextNode ( $str );您请求了一些文本,而您得到的是文本。<表示文字左尖括号字符。
如果要将原始标记插入到文档中,比如在浏览器中设置innerHTML,则必须创建一个新文档,将标记加载到其中,然后将生成的DOM节点导入到目标文档中。有关如何做到这一点,请参阅this question。
但是:
<textBody>
<br><br>
...
</textBody>这不是格式良好的XML,因此不能作为标记包含在XML文档中。如果在XML文件中存储任意HTML,则应该继续将其作为文本内容存储,因为HTML标记与XML标记不同(除非您使用的是XHTML)。
https://stackoverflow.com/questions/7130922
复制相似问题