xml空格WhiteSpace处理

XML 将以下四种字符归为空白字符 WhiteSpace :回车符(\r 或 ch(13))、换行符(\n 或 ch(10))、制表符 (\t) 以及空格 (‘ ‘)。

在 XML 文档中,空白字符分为两类:有意义空白字符 是文档内容的一部分,应予以保留。无意义空白字符 在编辑 XML 文档时使用,以增加可读性。这些空白字符一般在文档交付时不予保留。

默认情况,WhiteSpace是 DOM_Document的子节点,类型是DOM_Text,所以 XML的空白问题只是针对文本元素DOM_Text,对于元素的属性没有影响

1.xml

<AddBook>

 <Name/>

 <Mobile/>

</AddBook>

根节点的子节点数为 5 ( 错误 )

2.xml

<AddBook><Name/><Mobile/></AddBook>

根节点的子节点数为 2 ( 正确 )

W3C XSLT 规范提供了 xsl:strip-space()函数, 删除空白字符文本节点 (即文本节点完全由空白字符组成)的 XML文本元素。

W3C XSLT 还提供 xsl:normalize-space() 函数,将包含多个空白字符的XML文本元素转换为 一个空白字符 的XML文本元素。

举例:

<?xml version="1.0" encoding="GB2312" standalone="yes" ?>

<Class name="计算机软件班" id="001">

<Students>

<!-- 注释:student: 张      三 -->

<student name="张      三" studentNo="13031001" sex="男" age=22 >

<电话> 8820     8888 </电话>

<address> 西安市太    白南路二号 </address>

</student>

<student name="李四" studentNo="13031002" sex="男" age="20">

<phone>88206666</phone>

<address>西安市光华路</address>

</student>

</Students>

</Class>

注意事项:

(1)属性值 加引号是 字符串 否则是数字, 参考age

(2)<电话> 8820     8888 </电话> 这个是 文本Node, 如果使用了 空格压缩 机制, 输出为 8820 8888 多个空格合并成一个, 属性名称不受影响, 参考name="张      三"

时间: 2024-08-11 09:56:04

xml空格WhiteSpace处理的相关文章

大话XML解析

之前我写过一篇关于xml解析的文章:http://blog.csdn.net/sdksdk0/article/details/50749326.今天这篇文章主要是进一步加深对xml基础的理解了使用,毕竟基础是很重要的嘛!写的应该会更注重细节的内容.主要内容有xml语法.DOM解析.SAX解析.Xpath,schema约束. 一.xml语法 标签 有开始标签和结束标签 xml标签名称区分大小写 xml标签一定要正确配对 中间不能使用空格 不能以数字开头,可以以下划线或字母开头 在一个xml文档中,

源生API解析XML文档与dom4j解析XML文档

一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可以存储数据. 1.XML语言书写的注意事项 1.XML标签命名自定义[推荐英文],标签名中不能包含空格 2.XML空格和换行都表示数据,严格区分大小写 3.XML中特殊字符表示的数据需要使用特殊字符编码和HTML一样 4.CDATA区中的数据不会被识别为语法 <![CDATA[王天霸<>&l

java DOM解析xml文件出现#text节点解决方案

java DOM解析xml文件出现#text节点解决方案 原生java解析xml的方法提供了两个,DocumentBuilder 和 SAXParser. 试了第一个DOM方法,在解析输出节点过程中,getNodeName()输出节点名发现多出了几个#text节点. text.xml <?xml version="1.0" encoding="UTF-8"?> <!-- xml解析测试文件 --> <LData> <ldat

样式表笔记

叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言.相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排 版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设 计语言.CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的

Jenkins持续集成学习及企业级应用

文档声明 该文档主体为去年末自主学习时总结,旨在为我司提供一套企业级持续集成解决方案.这篇文章现在看上去很稚嫩,但是当时花费了许多心血.希望将当时的学习心得拿出来与大家交流.该文档主要说明了jenkins持续集成部署的相关步骤,并着重实现了权限分组,邮件配置,插件配置的jenkins实现过程.对出现的问题进行解决,是一套持续集成的解决方案. 持续集成Continuous integration 提出 针对复杂度高的项目提出“早集成,常集成,频繁集成”来帮助项目在早期发现项目风险和质量问题 作用

eclipse插件之Findbugs、Checkstyle、PMD安装及使用

一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入eclipse,当然也有单独的工具可以实现他们的功能,比如Findbugs Tool就可以不必插入eclipse就可以使用. 三者的功能如下表: 工具 目的 检查项 FindBugs 检查.class 基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug 主要检查bytecode中的bug patterns,如NullPoint空指

CSS文本

首行缩进 text-indent:0(默认值) text-indent:具体值(可以为负值) text-indent:x%(相对于包含块的宽度) text-indent:2em(2个汉字的字体大小) [注意]text-indent只可用于块级元素,且可继承 [实例1]悬挂缩进 <style> div{ width: 200px; border: 1px solid black; text-indent: -1em; padding-left: 1em; } </style> <

推荐一个优秀的c++源代码,TinyXml2

项目主页:http://grinninglizard.com/tinyxml2docs/index.html tinyxml2.h /* Original code by Lee Thomason (www.grinninglizard.com) This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for an

【python】python编码规范

PEP介绍 PEP是 Python Enhancement Proposal 的缩写,是Python增强建议书的意思. Python的代码风格由PEP 8描述.这个文档描述了Python编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的Python代码可以保持最大程度的相似风格.这样就易于阅读,易于在程序员之间交流. 命名规则 不同的命名风格 有许多不同的命名风格.以下的有助于辨认正在使用的命名风格,这独立于它们的作用. 小写串 (lowercase) 带下划线的小写串 (lower_