我有一个生成XML文档的php脚本,但输出有一个奇怪的问题。
我在整个文档中看似无效的字符,即使在标签本身也是如此?例如:
<id><![CATA[JS-DWLG001]]></id>
我不确定这将如何在您的浏览器中呈现,因此如果您看不到它,则无效字符将替换“CDATA”中的“D”。
有什么想法吗?
编辑:这是生成xml的代码的业务位:
<?
// variables and arrays populated here from db
?>
<job>
<title><![CDATA[<?=$field['vac_Title']?>]]></title>
<date><![CDATA[<?=date("D, j M Y g:i:s",$stamp)." GMT"?>>]]></date>
<referencenumber><![CDATA[<?=$field['vac_Ref']?>]]></referencenumber>
<url><![CDATA[<?=site_URL.parse_job_path($field['vac_Title'],$key)?>]]></url>
<company><![CDATA[<?=$field['vac_advertiser_name']?>]]></company>
<city><![CDATA[]]></city>
<state><![CDATA[<?=$field['vac_locs']?>]]></state>
<country><![CDATA[UK]]></country>
<postalcode><![CDATA[]]></postalcode>
<description><![CDATA[<?=$field['vac_Description']?>]]></description>
<salary><![CDATA[<?-$field['vac_Salary-Range']?>]]></salary>
<education><![CDATA[<?=$education_level?>>]]></education>
<jobtype><![CDATA[<?=$emp_type?>]]></jobtype>
<category></category>
<experience></experience>
</job>
答案 0 :(得分:0)
在php脚本中,当我们尝试使用附加字符串生成XML时,它通常会产生问题。您的输出可能有一些特殊和unicode字符。所以使用核心php提供的库总是一个好主意。就像你可以使用DOM XML生成XML一样。这将处理您的特殊字符和格式。 以下是带有DOM XML的示例代码
<?php
$books = array();
$books [] = array(
'title' => 'PHP Hacks',
'author' => 'Jack Herrington',
'publisher' => "O'Reilly"
);
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( "books" );
$doc->appendChild( $r );
foreach( $books as $book )
{
$b = $doc->createElement( "book" );
$author = $doc->createElement( "author" );
$author->appendChild(
$doc->createTextNode( $book['author'] )
);
$b->appendChild( $author );
$title = $doc->createElement( "title" );
$title->appendChild(
$doc->createTextNode( $book['title'] )
);
$b->appendChild( $title );
$publisher = $doc->createElement( "publisher" );
$publisher->appendChild(
$doc->createTextNode( $book['publisher'] )
);
$b->appendChild( $publisher );
$r->appendChild( $b );
}
header('Content-type: text/xml;charset=UTF-8');
echo $doc->saveXML();
?>
希望这会解决您的问题