XLT格式化XML那点事(二)

接上篇《XML通过XSL格式化的那点事(XML到自定义节点折叠显示)》,本文就如何将大的XLST分割成小文件和如何用C#将XML通过XSL生成HTML文件中的问题做下分析,避免有同样需求的朋友走弯路。

Import的使用

<xsl:Import> 元素必须在第一个节点

如何避免输出SelfClose的非法元素

 

简单繁琐的办法

<script type="text/javascript" src="nowhere.js">
<xsl:comment></xsl:comment>
</script>

 

一劳永逸的方法

不用XMLWriter使用自己定义的XMLHTMLWriter

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;

namespace XSLSelfClosing
{
    public class XmlHtmlWriter : XmlTextWriter
    {
        public XmlHtmlWriter(System.IO.Stream stream, Encoding en)
            : base(stream, en)
        {

            //Put all the elemnts for which you want self closing tags in this list.
            //Rest of the tags would be explicitely closed
            fullyClosedElements.AddRange(new string[] { "br", "hr" });
        }

        string openingElement = "";
        List<string> fullyClosedElements = new List<string>();

        public override void WriteEndElement()
        {
            if (fullyClosedElements.IndexOf(openingElement) < 0)
                WriteFullEndElement();
            else
                base.WriteEndElement();
        } 

        public override void WriteStartElement(string prefix, string localName, string ns)
        {
            base.WriteStartElement(prefix, localName, ns);
            openingElement = localName;
        }
    }
}

 

参考

XSLT self-closing tags issue

How to force Non-Self Closing tags for empty nodes when using XslCompiledTransform class

时间: 2024-10-29 09:57:41

XLT格式化XML那点事(二)的相关文章

spring-simple- memcache那些事二

spring-simple- memcache那些事二 maven依赖 <!-- simple-spring-memcached --> <dependency> <groupId>com.google.code.simple-spring-memcached</groupId> <artifactId>simple-spring-memcached</artifactId> <version>3.5.0</vers

格式化xml

打开xml: string xmlstring = ""; private void button1_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.InitialDirectory = Application.StartupPath; dialog.Filter = "All Files|*.*|xml file(*.xml)|*.xml&quo

Editplus 格式化 xml

需要用到的资源:http://download.csdn.net/detail/xunzaosiyecao/7482441 1.下载上面链接的资料,解压后,将xml.exe文件拷到EditPlus文件目录下. 2.打开editplus->tools->configue user tools,点击Add Tool,选择Program,如下图: 3.Menu text 是要在Editplus菜单中显示工具的名字,Command是选择刚才拷贝出来的xml文件,Argument填写fo即可. 4.配置

使用sublime一键格式化XML文件

1 sublime简介 sublime是一款代码编辑和阅读软件,体积小,运行快,界面非常简洁漂亮.官方地址:https://www.sublimetext.com/ 2 在sublime上安装插件 使用sublime一键格式化XML文件需要使用一个插件,所以首先谈下如何在sublime上如何安装插件. 安装插件的方法有两种: 第一:将package下载下来,离线安装. 第二:通过package control在线安装插件. 注:package control也是一个在sublime平台上的插件,

nodepad++ 格式化xml插件

1.用插件管理器安装xmltools插件 2.使用如下菜单格式化xml: 所有插件下载地址: http://sourceforge.net/projects/npp-plugins/files/ nodepad++ 格式化xml插件

Notepad++ 格式化xml

XML Tools是Notepad++格式化xml文件的一个插件: Notepad++ 格式化xml

linux基础-第十三单元 硬盘分区、格式化及文件系统的管理二

第十三单元 硬盘分区.格式化及文件系统的管理二 文件系统的挂载与卸载 什么是挂载 mount命令的功能 mount命令的用法举例 umount命令的功能 umount命令的用法举例 利用/etc/fstab文件在开机时自动挂载文件系统 虚拟内存的概念以及设置与管理 什么是虚拟内存 创建swap分区的步骤 使用硬盘分区创建和使用系统交换分区的实例 mkswap 命令的功能 mkswap 命令的用法举例 swapon命令的功能 swapon -a swapon -s swapon命令的用法举例 i节

XML通过XSL格式化的那点事(XML到自定义节点折叠显示)

  引言 有时我们想看下系统生成的XML文件(如XML格式的Project文件),如果文件结构简单,我们浏览器看起来还比较方便,但是随着XML schema复杂后就变得让人头疼啦,单独写一个程序去做展现又有点小题大做.这时XSL就用体现它的价值啦,当然XSL不只是为了显示,更多的目的是从一个格式生成另个一格式的XML或者其他格式的文件.本文只说说格式化. 效果图   XSL常用元素 xsl:template定义匹配节点的转换模板,属性match="xpath expression"用来

XML学习笔记(二):使用 DOM和SAX 解析XML :

一.XML解析的简介 1.一般来说xml解析的方式有两种,Dom与SAX,且各有优缺点.pull是第三种方法见:pull解析XML 1)DOM:dom对象树 ①.整个XML放入内存,转换为Document对象: ②.每个元素,转换成Element对象 ③.文本,转换成Text对象 ④.属性,转换成Attribute对象 优缺点:元素的CRUD比较简单,但是内存消耗大,大的xml文档不适合. 补充:内存不足时,可以修改参数,调整JVM的内存大小 1.java.lang.OutOfMemoryErr