xml空格WhiteSpace处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="张 三"
以上是关于xml空格WhiteSpace处理的主要内容,如果未能解决你的问题,请参考以下文章
意外的 T_ENCAPSED_AND_WHITESPACE,预期 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 错误 [重复]
[单选题]php_strip_whitespace 函数返回什么?