删除 xml 输出中的奇怪字符 [英] Remove wierd characters in xml output
问题描述
我正在尝试删除 xml 输出中的奇怪字符.这是代码和输出:
似乎存在编码问题.我尝试添加,这是从 ical 到 xml 的转换:
http://flourishhosting.co.uk/test.php
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"><xsl:for-each select="VCALENDAR"><div style="background-color:teal;color:white;padding:4px"><span style="font-weight:bold"><xsl:value-of select="URL"/>- </span><xsl:value-of select="DTSTART"/>
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt"><p><xsl:value-of select="SUMMARY"/><span style="font-style:italic">(<xsl:value-of select="calories"/> 每份卡路里)</span></p>
</xsl:for-each><?php函数 iCalendarToXML($icalendarData) {//检测行尾if (strpos($icalendarData,"
")) $lb = "
";elseif (strpos($icalendarData,"
")) $lb = "
";否则 $lb = "
";//每行拆分项目$lines =explode($lb,$icalendarData);//属性可以折叠成 2 行.在这种情况下,第二//行前有一个空格或制表符.$lines2 = array();foreach($lines 作为 $line) {if ($line[0]==" " || $line[0]==" ") {$lines2[count($lines2)-1].=substr($line,1);继续;}$lines2[]=$line;}$xml = '<?xml version="1.0"?>'."
";$空格 = 0;foreach($lines2 作为 $line) {$matches = array();//这匹配 PROPERTYNAME;ATTRIBUTES:VALUEif (preg_match('/^([^:^;]*)(?:;([^:]*))?:(.*)$/',$line,$matches)) {$propertyName = strtoupper($matches[1]);$attributes = $matches[2];$value = $matches[3];//如果该行的格式为 BEGIN:COMPONENT 或 END:COMPONENT,我们需要对其进行特殊处理.if ($propertyName == 'BEGIN') {$xml.=str_repeat(" ",$spaces);$xml.='<'.strtoupper($value) .">
";$空格+=2;继续;} elseif ($propertyName == 'END') {$空格-=2;$xml.=str_repeat(" ",$spaces);$xml.='</' .strtoupper($value) .">
";继续;}$xml.=str_repeat(" ",$spaces);$xml.='<'.$propertyName;如果($ 属性){//可以有多个属性$attributes = expand(';',$attributes);foreach($attributes as $att) {列表($attName,$attValue) = 爆炸('=',$att,2);$xml.=' ' .$attName .'="' .htmlspecialchars($attValue) .'"';}}$xml.='>'.htmlspecialchars($value) .'</' .$propertyName .">
";}}返回 $xml;}//从表单中读入艺术家$a = urlencode($_GET["VEVENT"]);$var = htmlentities($var,ENT_QUOTES, "Windows-1252");$connection = curl_init();//指定要连接的 URLcurl_setopt($connection, CURLOPT_URL, "http://mosaic-church.onthecity.org/plaza/events/ical_feed");//此选项确保 HTTP 响应从 curl_exec() *返回*,//(见下文)而不是输出到屏幕.curl_setopt($connection,CURLOPT_RETURNTRANSFER,1);//不要在响应中包含 HTTP 标头.curl_setopt($connection,CURLOPT_HEADER, 0);//实际连接到远程 URL.回应是//从 curl_exec() 返回并放置在 $response 中.$response = curl_exec($connection);$xml_output = iCalendarToXML($response);echo "XML 输出 <pre>".$xml_output."</pre>";//关闭连接.curl_close($connection);//解析代码:$xml = simplexml_load_string($xml_output);for($index=0; $index