`
dfch84
  • 浏览: 57551 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XSL中disable-output-escaping的使用

    博客分类:
  • xsl
 
阅读更多

    disable-output-escaping是XSL中的重要属性,用于指示是否将escaping(转义字符如:&<>) 作为xml进行解析。

<description>
	Ferris &amp; <a href="http://willa.com">Willa</a>
</description>

 上述代码的解析结果:

    disable-output-escaping="yes"或者"no",都被解析为:

    Ferris & Willa  因为<a>没有被解析成连接,而是被作为XML的一个节点解析了。

 

  此时,如果description元素中有单独的& <符号,解析时会报错!因为是非法的。

 

<description>
	Ferris &amp; &lt;a href="http://willa.com">Willa&lt;/a>
</description>

 上述代码解析结果:

    disable-output-escaping="yes",解析为:

    Ferris & Willa  &lt;被解析成<,继而被解析成链接

    disable-output-escaping="no"或者不设置该属性,解析为:

    Ferris & <a href="www">www</a>  &lt;将不被解析成<

 

  通过上述实例,我们发现两个问题:

  1.在XML元素中的写标签(如上述的<a>)将不会被作为text解析,而是作为节点来解析。如果想写XML字符串,必须以&lt;来表示<。如果想直接写XML字符串或者&、<等字符,可以考虑在元素中的<![CDATA[    ]]>中直接写。例如:

<description><![CDATA[
	Ferris & <a href="http://willa.com">Willa</a>]]>
</description>

   此时,如果disable-output-escaping="no",则显示:Ferris & <a href="http://willa.com">Willa</a>

   disable-output-escaping="yes",则显示:Ferris & Willa

  2.在XML元素中的text中不能还有独立的&字符,否则会报错。

 

    在<![CDATA[  ]]>中可以随便写什么,且如果d-o-e="no"时所写的就是将来所看到的,当d-o-e="yes"时会将其中的标签(<a href="#">Willa</a>)解析为html标签进行显示,将&lt;a>Willa&lt;a>这样的转义过的字符串显示为<a>Willa</a>。

 

    在元素中不能单独写特殊符号(写&,<会报错),且在元素中直接写的标签(<a href="#">Willa</a>)将作为XML节点解析,当试图去获取当前节点中的文本时,将得到Willa而不是<a href="#"></a>。在元素中的转义过的字符串,当d-o-e="yes"时将被解析为字符串代表的html内容,否则被解析为字符串本身。

 

    在应用开发中,经常会遇到对字符串中的特殊字符进行转换,如将&转换为&amp; ,将<转换为&lt;。需要注意的是,后台如果进行过这样的转换,那么在包含字符串时,就避免使用<![CDATA[  ]]>,否则前台读取到的结果就是&lt;&amp;等转义后的字符串。

分享到:
评论

相关推荐

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合,在jmeter.results.shanhe.me.xsl的基础上增加summary,解决换行问题

    XSL-FO 教程

    XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。...本章讲解 XSL-FO 如何使用 XSLT。 XSL-FO 对象参考手册 完整的 XSL-FO 对象列表,以及它们的属性。

    docbook-xsl-1.79.1.tar.bz2

    XSL-Stylesheets Source: DocBook-XSL-1.79.1

    把 CDATA 中的内容(有可能是不规范的Html代码)以Html方式展现出来。

    在这个例子中,对于匹配到的文本节点(即CDATA中的内容),使用`&lt;xsl:value-of&gt;`元素并设置`disable-output-escaping="yes"`,可以确保不对其进行转义处理,从而使得不规范的HTML代码能够按照预期被浏览器正确解析和...

    xml-xslt-xsl-fo-dotnet:使用XML,XSLT,XSL-FO和FO.NET在.NET中生成PDF文档的示例

    使用XML,XSLT,XSL-FO和在.NET中生成PDF文档的。 XML数据示例,XSL样式表和生成的PDF位于文件夹中(XML和XSL由)。 产生结果result.pdf : 建立解决方案 将source.xml和stylesheet.xsl复制到EXE文件夹 运行EXE...

    docbook-style-xsl.zip

    在这个案例中,“docbook-style-xsl-1.75.2-6.el6.noarch.rpm”是DocBook样式XSL转换器的一个特定版本,适用于RPM支持的系统,如CentOS 6,而且是“noarch”的,意味着它不依赖特定的处理器架构,可以在任何兼容的...

    jmeter-results-detail-report_21.xsl

    jmeter测试报告模板jmeter-results-detail-report_21.xsl

    docbook-xsl-doc-1.79.1.tar.bz2

    XSL-Stylesheets Document: DocBook-XSL-1.79.1

    jmeter-results-report.zip|jmeter-results-report_21.xsl

    4个jmeter测试报告模板集合 jmeter.results.shanhe.me.xsl jmeter.results.zyanycall.me.xsl jmeter-results-detail-report_30.xsl jmeter-results-report_21.xsl

    Laravel开发-xsl-laravel-template-engine

    要在Laravel项目中使用`Krowinski/Laravel XSLT`,首先需要通过Composer进行安装。在终端中运行以下命令: ``` composer require krowinski/laravel-xslt ``` 安装完成后,需要在`config/app.php`的`providers`数组...

    jmeter-results-shanhe-me.xsl

    标题中的"jmeter-results-shanhe-me.xsl"是一个XSLT(Extensible Stylesheet Language Transformations)文件,专门用于转换JMeter测试结果。JMeter是Apache组织开发的一款开源性能测试工具,常用于Web应用的压力...

    XSL中进行字符串替换

    在XSL中进行字符串替换是一项常见且实用的功能。本文将详细介绍如何通过XSLT实现字符串的替换,并重点探讨两种常用的方法:使用`ms:script`(仅限于Microsoft的XML解析器)以及纯XSL模板。 ### XSL中的字符串替换 ...

    cactus-report.xsl

    cactus-report.xsl cactus-report.xsl cactus-report.xsl

    docbook5-style-xsl-extensions-1.78.1-4.el7.noarch.rpm

    离线安装包,亲测可用

    【学习 XSL-FO】.pdf

    10. **XSL-FO软件**:学习和使用XSL-FO时,会涉及各种工具,如处理器(将XSL-FO转换为实际的输出格式如PDF)和编辑器,帮助开发者编写和调试XSL-FO文档。 XSL-FO的一个关键优势在于它的标准化,这意味着无论使用哪...

    docbook自定义xsl

    在DocBook中,XSL样式表定义了元素如何被呈现,如章节、列表、代码块等。 博文链接提到的资源包含了一些关键的XSL文件,让我们一一解析: 1. **pdf.xsl** - 这个文件用于将DocBook XML转换为PDF格式。它包含了生成...

    在XSL使用数组例子

    以下是对"在XSL中使用数组例子"这一主题的详细解释。 1. **数组概念的模拟** 在XSL中,我们不能像在其他编程语言中那样声明一个数组并初始化它。然而,我们可以通过创建一系列的变量或模板来模拟数组。每个变量...

    XSL学习 XSL学习.pdf

    ### XSL 学习知识点详解 #### 一、XSL 概述 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种...通过理解 XSL 的基本概念、语法以及 XPath 的使用方法,开发者可以更好地利用 XSL 来满足不同的需求。

    XML中显示HTML的小技巧

    通过本文的介绍,我们可以了解到在使用XSLT转换XML时,如果需要正确显示XML中的HTML代码,只需简单地在`&lt;xsl:value-of&gt;`元素中添加`disable-output-escaping="yes"`即可。这不仅能够帮助我们更好地理解XSLT的工作...

Global site tag (gtag.js) - Google Analytics