我正在读取XML文件中的内容以显示网页内容,请参阅代码片段以阅读XML文件,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$arg = $_GET['content'];
//echo $arg;
$doc = new DOMDocument();
$doc->load('History.XML');
$contents = $doc->getElementsByTagName($arg);
$content1 = $contents->item(0)->nodeValue;
$content2 = $contents->item(1)->nodeValue;
?>
<p>
<?php
echo <<<EOM
$content1
EOM;
?>
</p>
</body>
</html>
XML文件内容包含一些HTML格式标签,如<b>
<h3>
等,但是从XML读取和显示这些内容时,HTML格式不会发生。
如果我有任何错误,请澄清我。
答案 0 :(得分:3)
nodeValue
是所有文本节点的串联
请改用string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )。
自包含的例子:
<?php
$arg = 'foo';
$doc = new DOMDocument();
$doc->loadxml('<x>
<foo><h1>lalala</h1><b>xyz</b></foo>
<foo>12345</foo>
</x>');
$contents = $doc->getElementsByTagName($arg);
$content1 = $contents->item(0);
$content2 = $contents->item(1);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<p><?php echo $doc->savexml($content1); ?></p>
</body>
</html>
打印
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<p><foo><h1>lalala</h1><b>xyz</b></foo></p>
</body>
</html>