xml树仍然显示双引号

时间:2014-05-04 20:09:57

标签: php xml

我需要一些PHP的帮助,我正在生成xml输出。

在xml树上,我可以看到我正在使用双引号,但我想使用 单引号。

我想在中添加单引号

<programme 
    channel='MY CHANNEL NAME' 
    start='20140504113000' 
    stop='20140504131000'>

在xml树上,它将显示如下:

<programme 
    channel="MY CHANNEL NAME" 
    start="20140504113000" 
    stop="20140504131000">

你会看到这样的:

Screenshot http://oi57.tinypic.com/2058hs3.jpg

当我打开源代码时,我可以看到我有单引号。

<programme 
    channel='MY CHANNEL NAME' 
    start='2014-05-04' 
    stop='2014-05-05'>
</programme>

不确定问题是否存在于这一行:

$xml .= "<programme channel='$my_id $channel' start='$stoptime' stop='$starttime'>";

以下是代码:

    <?php
    header("Content-Type: text/xml");
    $my_id = '101';
    $channel = 'ABC FAMILY';
    $starttime = '2014-05-04';
    $stoptime = '2014-05-05';

    $xml .= "
      <programme channel='" . $my_id. " " . $channel . "' start='" . 
$starttime . "' stop='" . $stoptime . "'>";

    //$xml .= "<programme channel='".$channel."' start='".$starttime."'>";
    //$xml .= "<programme channel='$my_id $channel' start='$starttime' 
stop='$stoptime'>";

    $xml .= '</programme>';

    echo $xml;
    $handle = fopen("myChannel.xml", "w"); 
    fwrite ($handle, $xml);
    ?>

当我生成时,如何在xml树中看到单引号 xml?

2 个答案:

答案 0 :(得分:2)

我认为XML树不会显示确切的来源,而只会显示数据。 XML被加载到内存中,然后使用缩进,“标准化”引号和突出显示,以便您可以更轻松地阅读它。字符串值以双引号显示,所以你去了。

正如你所说,源代码有单引号,因此所有内容都按预期输出。这就是它的显示方式。不用担心。

答案 1 :(得分:0)

这个独立于引号的XML总是产生单引号

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE programs [
<!ATTLIST xsl:stylesheet
  id    ID  #REQUIRED>
]>
<programs>
<xsl:stylesheet id="stylesheet" version="1.0"       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
  <h2>PROGRAMS</h2>
    <table >
      <tr bgcolor="#9acd32">
        <th/>
        <th/>
        <th>ch</th>
        <th>strt</th>
    <th>stop</th>
    <th/>
  </tr>
  <tr>
    <td>&lt;programs&gt;</td>
  </tr>
  <xsl:for-each select="programs/programme">
  <tr>
    <td/>
    <td>&lt;programme&gt;</td>
    <td>channel='<xsl:value-of select="@channel"/>'</td>
    <td>start='<xsl:value-of select="@start"/>'</td>
    <td>stop='<xsl:value-of select="@stop"/>'</td>
    <td>&lt;/programme&gt;</td>
  </tr>
  </xsl:for-each>
  <tr>
    <td>&lt;/programs&gt;</td>
  </tr>
</table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
<programme channel='MY CHANNEL NAME' start="20140504113000"  stop='20140504131000'/>
<programme channel="MY CHANNEL NAME2" start='20140504113000'  stop="20140504131000"/>
</programs>

在这个示例之后,您可能希望使用XSLT进行所有解析;)