【发布时间】:2013-11-05 01:32:31
【问题描述】:
我在解析以下(缩短的)XML 文件时遇到问题:
<?xml version="1.0" encoding="UTF-8"?>
<!-- DOCTYPE nitf PUBLIC "-//IPTC-NAA//DTD NITF-XML 3.0//EN" "nitf.dtd" -->
<nitf>
<head>
<title>EU-Regierungschefs streiten über Waffen für Syrien</title>
</head>
<body>
<body.head>
<hedline>
<hl1>EU-Regierungschefs streiten über Waffen für Syrien</hl1>
</hedline>
</body.head>
<body.content>
<p> [...] </p>
<block style="EXTERNAL-LINKS">
<p>
<a href="http://dpaq.de/CyyZL">EU und Syrien</a>
</p>
<p>
<a href="http://dpaq.de/WzLWU">EU und Russland</a>
</p>
</block>
<media media-type="image">
<media-reference alternate-text="Merkel und Barroso" height="600" mime-type="image/jpeg" name="large_4_3" source="../dpa-bzv_myline-images/large/jpeg-1484DE008774AFFD-20130315-img_41077628.original.large-4-3-800-252-0-2976-2041.jpg" width="800"/>
<media-caption>
<p> [...] </p>
</media-caption>
</media>
</body.content>
<body.end/>
</body>
</nitf>
PHP 部分如下所示:
if (file_exists($path)) {
$xml = simplexml_load_file($path);
var_dump($xml->body->{'body.content'});
}
正如预期的那样,XML 内容被正确解析。这就是我的问题开始的地方。 <body.content> 包含 HTML 标记,它们也被解析,但我希望将内容视为字符串,直接输出以显示 HTML。
解决此问题的最佳方法是什么?
【问题讨论】:
-
正确的方法是将这些数据包装在 CDATA 标记中。但我猜你无权访问源代码?
-
@MikeB 正确!这些文件是通过 FTP 推送上传的。
-
你认为这是什么拐杖:用 '
' 替换 ' ' ]]> ' ??比我想象的要简单得多