XML入门的一些常见的问题总结(三)(3)_Xml教程
推荐:XSL-FO 初学者教程:XSL-FO 文档XSL-FO 文档是带有输出信息的XML文件。 XSL-FO 文档 XSL-FO 文档是带有输出信息的XML文件。它们含有有关输出布局以及输出内容的信息。 XSL-FO文档存储在以.fo或.fob为后缀的文件中。以.xm
状态 返回值
保留 "\n\t Jane\n\tSmith \n"
保留并截断 "Jane\n\tSmith"
半保留 " Jane Smith "
半保留并截断 "Jane Smith"
请注意“半保留”将规范化不重要的空白字符,例如,新行和 tab 字符将退化为单个空格。如果更改 xml:space 属性和 preserveWhiteSpace 开关,那么文本属性将返回相应的不同值。
CDATA and xml:space="preserve" subtree boundaries
在下面的例子中,CDATA 节点或“保留”节点的内容将得到连接,原因是它们不参与不重要的空白字符规范化。例如:
\n
\t Jane \n
\t Smith ]>\n
在这种情况下,CDATA 节点内部的空白字符不再与“不重要”空白字符“合并”,并且不会截断。因此“半保留并截断”情况将返回下列内容:
"Jane Smith "
在此, 和 标记之间的不重要的空白字符将包括在内,与 CDATA 节点的内容无关。如果用下列内容代替 CDATA,那么将返回相同结果:
Smith
实体是特殊的
实体是作为 DTD 的一部分加载和分析的,并且显示在 DOCTYPE 节点下。它们不一定要有任何 xml:space 范围。例如:
Jane \n
\t\n
">
]>
&Jane;
假定 preserveWhiteSpace=false(在 DOCTYPE 标记范围内),在分析实体时不重要的空白字符丢失。实体将不会有空白字符节点。树将类似于:
DOCTYPE foo
ENTITY: Jane
ELEMENT: employee
ELEMENT: name
TEXT: Jane
ELEMENT: title
TEXT>:Software Design Engineer
ELEMENT: foo
ATTRIBUTE: xml:space="preserve"
ENTITYREF: Jane
请注意,在 DOCTYPE 内部 ENTITY 节点下显露的 DOM 树不包含任何 WHITESPACE 节点。这意味着 ENTITYREF 节点的子节点也没有 WHITESPACE 节点,即使实体引用在 xml:space="preserve" 的范围内也是这样。
给定文档中引用的每个 ENTITY 的实例通常都有相同的树。
如果实体必须绝对保留空白字符,那么它必须在自己内部指定自己的 xml:space 属性,或者文档 preserveWhiteSpace 开关必须设置为 true。
如何处理属性中的空白字符?
有几种方式可以访问属性值。IXMLDOMAttribute 接口有 nodeValue 属性,它等价于作为 Microsoft 扩展的 nodeValue 和 text 属性。这些属性返回: 属性 返回的文本
attrNode.nodeValue
attrNode.value
getAttribute("name") 返回和原始文档中完全相同的内容(和扩展的实体)。
attrNode.nodeTypedValue Null
attrNode.text 除了前导和尾部的空白字符已经截断之外,其他与 nodeValue 相同。
“XML 语言”规范为 XML 应用程序定义了下列行为: 属性类型 返回的文本
CDATA ID、IDREF、IDREFS、ENTITY、ENTITIES、NOTATION、枚举
半规范化 全规范化
在此半规范化代表将新行和 tab 字符转换为空格,但是多个空格不会退化为一个空格。
分享:Web2.0岁月:使用AJAX技术的十大理由保守来说,AJAX在现在是热得不能再热的技术。没有人能否认,它拥有大批的支持者。在CNN上,它从二月份的一个不被看好的词语到十月份成长成一个初具雏形的技术。所以,有必要要看看为什么AJAX能
- 相关链接:
- 教程说明:
Xml教程-XML入门的一些常见的问题总结(三)(3)。