簡體   English   中英

使用php生成xml文件但沒有顯示&符號

[英]Generate xml file using php but ampersand is not displaying

我的 php 代碼生成了 xml 文件,但未顯示 url 中包含與號的行。 下面是php代碼

$dom = new DOMDocument('1.0','UTF-8');
$dom->formatOutput = true;

$root = $dom->createElement('journal');
$dom->appendChild($root);

$journal_metadata = $dom->createElement('journal_metadata');
$dom->appendChild($journal_metadata);

$issue_doi = $dom->createElement('doi', '11');
$issue_doi_data->appendChild($issue_doi);

$issue_resource = $dom->createElement('resource', 'http://localhost/fo/issues.php?jid=1&issueID=155');
$issue_doi_data->appendChild($issue_resource);


echo '<xmp>'. $dom->saveXML() .'</xmp>';
$dom->save('result.xml') or die('XML Create Error');

你將不得不“逃避”它。 嘗試使用: &#38; 而不僅僅是&

沒有顯示具有“帶有和號的 url ”的行,因為應包含該url 的$issue_doi_data變量未聲明且未附加到初始文檔$dom
其次,如果收到警告消息“未終止的實體引用”,您可以使用htmlentities() (或htmlspecialchars() )來轉義提供的值。
更改您的代碼,如下所示:

$dom = new \DOMDocument('1.0','UTF-8');
$dom->formatOutput = true;

$root = $dom->createElement('journal');
$dom->appendChild($root);

$journal_metadata = $dom->createElement('journal_metadata', '...');
$root->appendChild($journal_metadata);

// modify this line with your prefered name and value
$issue_doi_data = $dom->createElement('doi_data', '');

$issue_doi = $dom->createElement('doi', '11');
$issue_doi_data->appendChild($issue_doi);

$issue_resource = $dom->createElement('resource', htmlspecialchars('http://localhost/fo/issues.php?jid=1&issueID=155'));
$issue_doi_data->appendChild($issue_resource);
$root->appendChild($issue_doi_data);

// save xml into file
$dom->save('result.xml') or die('XML Create Error');
// outputting xml file content
echo '<xmp>'. html_entity_decode(file_get_contents('result.xml')) .'</xmp>';

// the output:
 <?xml version="1.0" encoding="UTF-8"?>
    <journal>
      <journal_metadata>...</journal_metadata>
      <doi_data>
        <doi>11</doi>
        <resource>http://localhost/fo/issues.php?jid=1&issueID=155</resource>
      </doi_data>
    </journal>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM