知识大全 XML入门的常见问题解决集合(四)

Posted 字符

篇首语:习惯形成性格,性格决定命运。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 XML入门的常见问题解决集合(四)相关的知识,希望对你有一定的参考价值。

XML入门的常见问题解决集合(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在 XML 对象模型中如何处理空白字符?

  有些时候 XML 对象模型将显示包含空白字符的 TEXT 节点 空白字符被截断后 多半会带来一些混乱 例如下面的 XML 例子

  ]>  Smith  John 

  生成下列树

  Processing Instruction: xml  DocType: person  ELEMENT: person  TEXT:   ELEMENT: lastname  TEXT:   ELEMENT: firstname  TEXT: 

  名字和姓氏两边是只包含空白字符的 TEXT 节点 因为 person 元素的内容模型是 MIXED 它包含 #PCDATA 关键字 MIXED 内容模型指定元素之间可以有文本存在 因此 下面的内容也是正确的

  My last name is Smith and my first name is  John

  结果是类似于下面的树

  ELEMENT: person  TEXT: My last name is  ELEMENT: lastname  TEXT: and my first name is  ELEMENT: firstname  TEXT: 

  如果没有单词 is 之后和 之前的空白字符 以及 之后和单词 and 之前的空白字符 那么句子便无法理解 因此 对于 MIXED 内容模型来说 文字组合 空白字符和元素都是相关的 对于非 MIXED 内容模型来说则不是这样

  要使只有空白字符的 TEXT 节点消失 请从 person 元素声明中删除 #PCDATA 关键字

  结果是下面清晰的树

  Processing Instruction: xml  DocType: person  ELEMENT: person  ELEMENT: lastname  ELEMENT: firstname

  XML 声明做什么?

  XML 声明必须列在 XML 文档的顶部

  它指定下面的项目

  该文档是 XML 文档 在丢失或者还没有指定 MIME 类型时 MIME 探测器可以用它来检测文件是否为类型 text/xml   文档符合 XML 规范 在以后 XML 有其他版本时这一点很重要   文档字符编码 编码属性是可选的 默认为 UTF   注意 XML 声明必须在 XML 文档的第一行 因此下面的 XML 文件

  产生下面的分析错误

  无效的 xml 声明   行 :       位置  : ^  注意 XML 声明是可选的 如果需要在顶部指定注释或者处理指令 那么请不要放入 XML 声明 但是 默认的编码将为 UTF

  如何以可读格式打印我的 XML 文档?

  在用 DOM 从零开始构造文档以产生 XML 文件时 任何内容都在一行上 相互之间没有空格 这是默认的行为

  构造在 Internet Explorer 中的默认 XSL 样式表 以可读格式显示和打印 XML 文档 例如 如果已经安装了 IE 请尝试查看 nospace xml 文件 浏览器中应该显示下面的树

        XYZ   

  在 XML 中没有插入空白字符

  打印可读 XML 是非常有趣的 特别是有定义不同类型内容模型的 DTD 时 例如 在混合内容模型 (#PCDATA) 下不能插入空格 因为它可能改变内容的含义 比如请考虑下面的 XML

  Elephant  这最好不输出为

  E  lephant  因为单词边界不再正确

  所有这些都使自动化打印成为问题 如果不需要打印可读 XML 那么可以使用 DOM 在适当的位置插入空白字符作为文本节点

  如何在 DTD 中使用名称空间? 要在 DTD 中使用名称空间 请在使用它的元素的 ATTLIST 声明中声明它 如下所示

  名称空间类型必须为 #FIXED 属性的名称空间也是这样

  名称空间和 XML 架构   DTD 和 XML 架构不能混合 例如 下面的

  xmlns:x CDATA #FIXED x schema:myschema xml

  将不导致使用在 myschema xml 中定义的架构定义 对 DTD 和 XML 架构的使用是互斥的

  如何在 Visual Basic 中使用 XMLDSO?

  使用下面的 XML 作为例子

  Mark Hanson        Jane Smith     

  可以按如下方式绑定到 ADO 记录集

  创建新的 VB 项目

  添加对 Microsoft ActiveX Data Objects 或更高版本 Microsoft Data Adapter Library 和 Microsoft XML 版的引用

  用下面的代码将 XML 数据加载到 XML DSO 控件中

  Dim dso As New XMLDSOControl  Dim doc As IXMLDOMDocument  Set doc = dso XMLDocument  doc Load ( d:\\test xml )

  用下面的代码将 DSO 映射到使用 DataAdapter 的新记录集对象中

  Dim da As New DataAdapter  Set da Object = dso  Dim rs As New ADODB Recordset  Set rs DataSource = da

  访问数据

  MsgBox rs Fields( name ) Value

  结果显示字符串 Mark Hanson   如何在 Java 中使用 XML DOM?

  必须已经安装 MSXML DLL 的 IE 版本 在 Visual J++ 中 从项目菜单选择添加 包装程序 然后从 对象列表中选择 Microsoft XML 该操作将把所需的 Java 包装程序构造到称为 msxml 的新软件包中 这些预先构造的 Java 包装程序也可以下载 类可以按如下方法使用

  import *;  import msxml *;  public class Class     public static void main (String[] args)    DOMDocument doc = new DOMDocument();  doc load(new Variant( file://d:/samples/ot xml ));  System out println( Loaded + doc getDocumentElement() getNodeName());    

  代码示例将从 sun religion 示例中加载 MB 测试文件 ot xml Variant 类用于包装 Win VARIANT 基本类型

  因为在每次检索节点时实际上都获得了新的包装程序 因此不能在节点上使用指针比较 因此 不要使用下面的代码

  IXMLDOMNode root = doc getDocumentElement();  IXMLDOMNode root = doc getDocumentElement();  if (root == root )

  而要使用下面的代码

  if (ComLib isEqualUnknown(root root ))

   class 包装程序的总大小大约为 KB 但是 为了与 W C 规范完全符合 应该只使用 IXMLDOM* 包装程序 下面的类是旧的 IE XML 接口 可以从 msxml 文件夹中删除它们

  IXMLAttribute*   IXMLDocument* XMLDocument*   IXMLElement*   IXMLError*   IXMLElementCollection*   tagXMLEMEM_TYPE*   _xml_error* 

  这使大小减少为 KB 同时还可以删除下面的项目

  DOMFreeThreadedDocument  在 Java 应用程序中从多个线程访问 XML 文档   XMLHttpRequest  用 XML DAV HTTP 扩展与服务器通信   IXTLRuntime  定义 XSL 样式表脚本对象   XMLDSOControl  绑定到 HTML 页面中的 XML 数据   XMLDOMDocumentEvents  在分析过程中返回回调  

  这可以将大小减少到 KB 要使它更小 请考虑 DOM 本身有两层的事实 核心层包括

  DOMDocument IXMLDOMDocument   IXMLDOMNode*   IXMLDOMNodeList*   IXMLDOMNamedNodeMap*   IXMLDOMDocumentFragment*   IXMLDOMImplementation   IXMLDOMParseError 

  和用户可能需要保留的 DTD 信息

  IXMLDOMDocumentType   IXMLDOMEntity   IXMLDOMNotation 

  XML 文档中的所有节点类型都是 IXMLDOMNode 它提供全部功能 但是存在每种节点类型的更高级别的包装程序 因此 如果修改 DOMDocument 包装程序并将这些特定类型更改为使用 IXMLDOMNode 那么所有下面的接口都可以删除

  IXMLDOMAttribute   IXMLDOMCDATASection   IXMLDOMCharacterData   IXMLDOMComment   IXMLDOMElement   IXMLDOMProcessingInstruction   IXMLDOMEntityReference   IXMLDOMText  

cha138/Article/program/net/201311/12591

相关参考

知识大全 解决JSP中拼装数据为XML出现的问题

解决JSP中拼装数据为XML出现的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一应用背景

知识大全 调用.NET XML Web Services返回数据集合二

调用.NETXMLWebServices返回数据集合二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 XML入门教程:XML有哪些用途?

XML入门教程:XML有哪些用途?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XML是被设计

知识大全 ASP.NET入门教程 7.7 XML数据[3]

ASP.NET入门教程7.7XML数据[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 7.7 XML数据[2]

ASP.NET入门教程7.7XML数据[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 7.7 XML数据[1]

ASP.NET入门教程7.7XML数据[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 9.1.8 使用数组和集合[1]

ASP.NET入门教程9.1.8使用数组和集合[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 9.1.8 使用数组和集合[5]

ASP.NET入门教程9.1.8使用数组和集合[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 9.1.8 使用数组和集合[4]

ASP.NET入门教程9.1.8使用数组和集合[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 9.1.8 使用数组和集合[3]

ASP.NET入门教程9.1.8使用数组和集合[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!