我爱Aspx >> C#.Net >> XML入门的常见问题(三)_XML教程
XML入门的常见问题(三)_XML教程
- :aspxer Դ:internet :2007-4-28 23:43:15 ؼ:xml
- preserveWhiteSpace = false when the document is loaded
| preserveWhiteSpace=true | preserveWhiteSpace=true | preserveWhiteSpace=false | preserveWhiteSpace=false |
| xml:space=preserve | xml:space=default | xml:space=preserve | xml:space=default |
| 半保留 | 半保留并截断 | 半保留 | 半保留并截断 |
此处的保留表示和原始 XML 文档中完全相同的原始文本内容,截断意味着前导和尾部空格已经删除,半保留意味着保留了“重要的空白字符”并规范化了“不重要的空白字符”。重要的空白字符是文本内容内部的空白字符。不重要的空白字符是标记之间的空白字符,请看如下所示: \n \t Jane\n \tSmith \n 在本示例中,红色是可以忽略的不重要的空白字符,而绿色是重要的空白字符,因为它是文本内容的一部分,因此有不可忽略的重要含义。所以在本例中,文本属性返回下列结果: 状态 返回值 保留 "\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 字符转换为空格,但是多个空格不会退化为一个空格。
Ҷƪл˵?
- һƪXML入门的常见问题(二)_XML教程
һƪXML入门的常见问题(四)_XML教程
- 关于我们 | 广告服务 | 网站建设 | 版权申明 | 申请链接 | 联系我们
- Copyright © 2007 5iaspx.COM. All Right Reserved.
- 本站内容仅供学习,研究,探讨,个人收藏,如有侵权,敬请联系我们,我们尽快解决!