热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

XML进门的常见标题(四)

在XML对象模型中如何处理空缺字符?有些时候,XML对象模型将显示包含空缺字符的TEXT节点。空缺字符被截断后,多半会带来一些混乱。例如下面的XML例子:以下为引用的内容:

在 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 1.0 规范。在以后 XML 有其他版本时这一点很重要。

文档字符编码。编码属性是可选的,默认为 UTF-8。

留心:XML 声明必需在 XML 文档的第一行,因此下面的 XML 文件:

产生下面的分析错误:

无效的 xml 声明。

行 0000002:

地位  0000007: ------^

留心:XML 声明是可选的。假如需要在顶部指定注释或者处理指令,那么请不要放进 XML 声明。但是,默认的编码将为 UTF-8。

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

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

结构在 Internet Explorer 5 中的默认 XSL 样式表,以可读格局显示和打印 XML 文档。例如,假如已经安装了 IE5,请尝试查看nospace.xml 文件。浏览器中应当显示下面的树:

以下为引用的内容:
  -
  -
  XYZ
  12.56

在 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
  206 765 4583
  
  Jane Smith
  425 808 1111 

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

创立新的 VB 6.0 项目。

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

用下面的代码将 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 的 IE5 版本。在 Visual J 6.0 中,从项目菜单选择添加 COM 包装程序,然后从 COM 对象列表中选择“Microsoft XML 1.0”。该把持将把所需的 Java 包装程序结构到称为“msxml”的新软件包中。这些预先结构的 Java 包装程序也可以下载。类可以按如下方法应用:

以下为引用的内容:
   import com.ms.com.*;
  import msxml.*;
  public class Class1
  {
  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 示例中加载 3.8MB 测试文件“ot.xml”。Variant 类用于包装 Win32 VARIANT 基础类型。

由于在每次检索节点时实际上都获得了新的包装程序,因此不能在节点上应用指针比拟。因此,不要应用下面的代码,

以下为引用的内容:
  IXMLDOMNode root1 = doc.getDocumentElement();
  IXMLDOMNode root2 = doc.getDocumentElement();
  if (root1 == root2)...

而要应用下面的代码:

 if (ComLib.isEqualUnknown(root1, root2)) ....

.class 包装程序的总大小大约为 160KB。但是,为了与 W3C 规范完整符合,应当只应用 IXMLDOM* 包装程序。下面的类是旧的 IE 4.0 XML 接口,可以从 msxml 文件夹中删除它们:

以下为引用的内容:
  IXMLAttribute*,
  IXMLDocument*, XMLDocument*
  IXMLElement*,
  IXMLError*,

推荐阅读
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 本文详细介绍了 Sublime Text 3 在 2021 年的激活密钥及其在线激活方法。用户可以通过提供的链接访问云海天教程,获取更多详细的激活码信息和操作步骤。此外,文章还提供了安全可靠的激活方案,帮助用户顺利激活软件,提升编程效率。 ... [详细]
  • 在Office 7的VBA环境中,使用宏求解时频繁遇到语法错误问题分析与解决方法
    在Office 7的VBA环境中,使用宏求解时频繁遇到语法错误问题分析与解决方法 ... [详细]
  • 使用PyQt5与OpenCV实现电脑摄像头的图像捕捉功能
    本文介绍了如何使用Python中的PyQt5和OpenCV库来实现电脑摄像头的图像捕捉功能。通过结合这两个强大的工具,用户可以轻松地打开摄像头并进行实时图像采集和处理。代码示例展示了如何初始化摄像头、捕获图像并将其显示在PyQt5的图形界面中。此外,还提供了详细的步骤说明和代码注释,帮助开发者快速上手并实现相关功能。 ... [详细]
  • Sublime Text 3 注册密钥及激活方法详解
    本文详细介绍了Sublime Text 3的注册密钥获取与激活方法,旨在帮助用户合法且高效地使用这款强大的文本编辑器。文章不仅提供了最新的注册密钥信息,还涵盖了详细的激活步骤,确保用户能够顺利激活软件,享受其带来的便捷与高效。此外,文中还简要对比了Sublime Text 3与其他主流文本编辑器的功能差异,为用户提供更多选择参考。 ... [详细]
  • Cookie是一种小型数据文件,由Web服务器生成并存储在用户的浏览器中。当用户再次访问同一服务器时,这些数据可以被重新读取,为用户提供个性化的体验。Cookie在软件测试中具有重要作用,能够帮助测试人员验证会话管理、用户偏好设置等功能的正确性和安全性。通过深入解析Cookie的工作原理及其在不同场景下的应用,本文旨在为软件测试人员提供全面的技术指导。 ... [详细]
  • 在 CentOS 7 系统中,为了扩展根目录(/)的存储空间,本文详细介绍了从虚拟机硬盘扩容到文件系统调整的全过程。通过具体的操作步骤,成功解决了因空间不足导致的 GNOME 桌面无法正常登录的问题,为用户提供了一套完整的解决方案。 ... [详细]
  • 通过命令行工具 `virt-install` 配置和安装虚拟机环境。`virt-install` 是一个基于 `libvirt` 虚拟化管理库的命令行工具,用于创建新的虚拟机实例。该工具支持通过串行控制台和 SDL 图形界面进行虚拟机的安装和管理,适用于多种操作系统和虚拟化平台。 ... [详细]
  • 从数据库中移除特定条目
    在数据库管理中,删除特定条目的操作是常见的需求。本文介绍了如何高效且安全地从数据库中移除指定记录,包括相关的 SQL 语句和注意事项,以确保数据完整性和系统稳定性。 ... [详细]
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在探索 Unity Shaders 的过程中,我逐渐意识到掌握 OpenGL 基础知识的重要性。本文将详细介绍 OpenGL 的核心概念和基本操作,帮助读者从零开始理解这一图形编程技术。通过实例和代码解析,我们将深入探讨如何利用 OpenGL 创建高效的图形应用。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。 ... [详细]
  • 如何使用专业软件打开和编辑PHP电影文件?
    如何使用专业软件打开和编辑PHP电影文件? ... [详细]
  • 近期,一种被称为“1KB快捷方式病毒”(学名为“VBS病毒”)在我公司内迅速蔓延,给系统安全带来了严重威胁。该病毒通过创建同名的恶意快捷方式文件传播,感染后可能导致文件损坏或丢失。为有效应对这一问题,我们正在采取一系列综合防护措施,包括更新防病毒软件、加强员工安全意识培训以及定期备份重要数据,以降低病毒带来的风险。 ... [详细]
  • 软件开发史上最具影响力的十位编程大师(附图解)
    在软件开发领域,有十位编程大师对行业发展产生了深远影响。本文基于国外知名社区的一项评选,通过图文并茂的形式,详细介绍了这十位杰出人物,包括游戏开发先驱John Carmack等,为读者呈现了他们卓越的技术贡献与创新精神。 ... [详细]
  • 深入解析Go语言的编译与执行流程
    上一篇我们探讨了Golang在多种操作系统中的安装方法,并通过一个经典的HelloWorld示例进行了实践。在此过程中,我们使用了`gorun`命令,该命令能够一次性完成从源代码编译到程序执行的全过程。本文将深入剖析这一流程,揭示其背后的机制。实际上,`gorun`的功能可以视为`go build`与直接运行可执行文件的结合。在Golang的构建过程中,`go build`工具负责将源代码编译成二进制文件,这是生成可执行程序的关键步骤。 ... [详细]
author-avatar
sjxs198422
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有