转义 <script> 标签内的内容
Escape the content inside a <script> tag
我想像这样将 XSLT 代码存储在 HTML 文件中:
<script id="xsltCode" type="text/xml">
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
<script>...</script>
...
</xsl:stylesheet>
</script>
如您所见,我遇到的问题是由 XSLT 代码中的 <script>
标记引起的。逃避它的最简单解决方案是什么?
感谢您的帮助。
{{html "</sc"+"ript>"}}
可以替代您的第一个 </script>
标签。我认为您的问题是第一个 </script>
被视为 <script id="xsltCode" type="text/xml">
的结束标记,这显然破坏了您的代码。结果:
<script id="xsltCode" type="text/xml">
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
<script>...{{html "</sc"+"ript>"}}
...
</xsl:stylesheet>
</script>
在其中随意添加标签是不可取的。如果您不能单独加载 XSLT,备选方案是:
- 将其存储在 JavaScript 字符串中(最干净的选项)
- 正确转义 XSLT:
<
需要用<
转义
- 您的 XSLT 中已经存在的任何 XML 实体转义都需要进行双重转义。例如。如果有
&
或
之类的数字转义符,请将它们转换为 &amp;
和 &#10;
.
- 使用 XHTML 混合其他 XML 不是问题。 (但是,您必须使用正确的 mimetype 为它提供服务,并确保您工作干净利落。这是一个干净但 "old-fashioned" 的解决方案。)
无论如何,请省略 XML 声明。这在这里没有意义,甚至可能导致问题。
我想像这样将 XSLT 代码存储在 HTML 文件中:
<script id="xsltCode" type="text/xml">
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
<script>...</script>
...
</xsl:stylesheet>
</script>
如您所见,我遇到的问题是由 XSLT 代码中的 <script>
标记引起的。逃避它的最简单解决方案是什么?
感谢您的帮助。
{{html "</sc"+"ript>"}}
可以替代您的第一个 </script>
标签。我认为您的问题是第一个 </script>
被视为 <script id="xsltCode" type="text/xml">
的结束标记,这显然破坏了您的代码。结果:
<script id="xsltCode" type="text/xml">
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
<script>...{{html "</sc"+"ript>"}}
...
</xsl:stylesheet>
</script>
在其中随意添加标签是不可取的。如果您不能单独加载 XSLT,备选方案是:
- 将其存储在 JavaScript 字符串中(最干净的选项)
- 正确转义 XSLT:
<
需要用<
转义
- 您的 XSLT 中已经存在的任何 XML 实体转义都需要进行双重转义。例如。如果有
&
或
之类的数字转义符,请将它们转换为&amp;
和&#10;
.
- 使用 XHTML 混合其他 XML 不是问题。 (但是,您必须使用正确的 mimetype 为它提供服务,并确保您工作干净利落。这是一个干净但 "old-fashioned" 的解决方案。)
无论如何,请省略 XML 声明。这在这里没有意义,甚至可能导致问题。