0

更新:失败案例

<?xml version="1.0" encoding="ISO-8859-1"?>

<catalog>
    <cd>
        <title>Empire &amp; Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>   
</catalog>
<catalog>
    <cd>
        <title>Empire & Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>   
</catalog>

嗨,我有以下 XML

<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>   
</catalog>

下面的 XSL 来翻译上面的

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

到目前为止,翻译工作正常。但是,如果我将 XML 标记值更改为包含编码字符,&或者&amp;我没有得到结果

我怎样才能逃脱这些字符?

4

1 回答 1

0

您必须将 更改&&amp;,这应该可以正常工作。因为看起来你已经尝试过了。您可以尝试分别对字符的十进制&#38;和十六进制 unicode 引用。&#x26;&

<?xml version="1.0" encoding="ISO-8859-1"?> 
<catalog> 
  <cd> 
    <title>Empire &#x26; or &#38; Burlesque</title> 
    <artist>Bob Dylan</artist> 
    <country>USA</country> 
    <company>Columbia</company> 
    <price>10.90</price> 
    <year>1985</year> 
  </cd>
</catalog>

如果这不能解决问题,我可以知道哪个 XSLT 处理器用于生成输出吗?

于 2013-04-22T05:24:53.043 回答