2011-12-06 6 views
1

XML文書を生成するPHPスクリプトがありますが、出力に奇妙な問題があります。タグ内を含め、XML出力にランダムに無効な文字が表示される

タグ自体でも、文書全体で一見無作為に無効な文字が表示されていますか?たとえば:

<id><![CATA[JS-DWLG001]]></id> 

私はこれがあなたのブラウザでレンダリングされるかどうかはわかりませんので、あなたがそれを見ることができない場合は、無効な文字は「CDATA」の「D」を置き換えています。

アイデア?

編集:ここでは、コードのビジネスのビットは、XMLを生成します:PHPスクリプトで

<? 
// 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

あなたの問題を解決しますが、PHPスクリプトのサンプルを与えることができますでしょうか? – Ryan

+0

IDにエラーを投稿しましたが、フィールドIDが他のビットにありません... –

+0

申し訳ありませんが、少し異なるXML出力を生成する5つの異なるスクリプトがありますが、上記と似ています。 invald文字は、5つのファイルすべての出力に表示されます。私はちょうどそれらが含んでいるデータだけでなく、実際にXMLタグ内に文字がどのように現れるかの例としてもともと 'id'行を与えました。 – user1083820

答えて

0

我々は、文字列を追加してXMLを生成しようとすると、それが正常に問題を作成します。あなたの出力には特別なUnicode文字が含まれているかもしれません。だから、コアphpによって提供されるライブラリを使うのは常に良い考えです。 XML生成にDOM 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(); 
?> 

希望ですこれは

関連する問題