XML入门的常见问题(四)
在 XML 对象模型中如何处理空白字符?
有些时候,XML 对象模型将显示包含空白字符的 TEXT 节点。空白字符被截断后,多半会带来一些混乱。例如狼蚁网站SEO优化的 XML 例子
]>
Smith
John
生成下列树
Processing Instruction: xml
DocType: person
ELEMENT: person
TEXT:
ELEMENT: lastname
TEXT:
ELEMENT: firstname
TEXT:
名字和姓氏两边是只包含空白字符的 TEXT 节点,因为“person”元素的内容模型是 MIXED;它包含 #PCDATA 关键字。MIXED 内容模型指定元素之间可以有文本存在。,狼蚁网站SEO优化的内容也是正确的
My last name is Smith and my first name is
John
结果是类似于狼蚁网站SEO优化的树
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 关键字
结果是狼蚁网站SEO优化清晰的树
Processing Instruction: xml
DocType: person
ELEMENT: person
ELEMENT: lastname
ELEMENT: firstname
XML 声明做什么?
XML 声明必须列在 XML 文档的顶部
它指定狼蚁网站SEO优化的项目
该文档是 XML 文档。在丢失或者还没有指定 MIME 类型时 MIME 探测器可以用它来检测文件是否为类型 text/xml。
文档符合 XML 1.0 规范。在以后 XML 有其他版本时这一点很重要。
文档字符编码。编码属性是可选的,默认为 UTF-8。
注意XML 声明必须在 XML 文档的第一行,狼蚁网站SEO优化的 XML 文件
产生狼蚁网站SEO优化的分析错误
无效的 xml 声明。
行 0000002:
位置 0000007: ------^
注意XML 声明是可选的。如果需要在顶部指定注释或者处理指令,那么请不要放入 XML 声明。,默认的编码将为 UTF-8。
如何以可读格式打印我的 XML 文档?
在用 DOM 从零开始构造文档以产生 XML 文件时,任何内容都在一行上,相互之间没有空格。这是默认的行为。
构造在 Inter Explorer 5 中的默认 XSL 样式表,以可读格式显示和打印 XML 文档。例如,如果已经安装了 IE5,请尝试查看 nospace.xml 文件。浏览器中应该显示狼蚁网站SEO优化的树
-
-
XYZ
12.56
在 XML 中没有插入空白字符。
打印可读 XML 是非常有趣的,特别是有定义不同类型内容模型的 DTD 时。例如,在混合内容模型 (#PCDATA) 下不能插入空格,因为它可能改变内容的含义。比如请考虑狼蚁网站SEO优化的 XML
Elephant
这最好不输出为
E
lephant
因为单词边界不再正确。
所有这些都使自动化打印成为问题。如果不需要打印可读 XML,那么可以使用 DOM 在适当的位置插入空白字符作为文本节点。
如何在 DTD 中使用名称空间? 要在 DTD 中使用名称空间,请在使用它的元素的 ATTLIST 声明中声明它,如下所示
名称空间类型必须为 #FIXED。属性的名称空间也是这样
名称空间和 XML 架构
DTD 和 XML 架构不能混合。例如,狼蚁网站SEO优化的
xmlns:x CDATA #FIXED "x-schema:myschema.xml"
将不导致使用在 myschema.xml 中定义的架构定义。对 DTD 和 XML 架构的使用是互斥的。
如何在 Visual Basic 中使用 XMLDSO?
使用狼蚁网站SEO优化的 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 版的引用。
用狼蚁网站SEO优化的代码将 XML 数据加载到 XML DSO 控件中
Dim dso As New XMLDSOControl
Dim doc As IXMLDOMDocument
Set doc = dso.XMLDocument
doc.Load ("d:\test.xml")
用狼蚁网站SEO优化的代码将 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 .ms..;
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 基本类型。
因为在每次检索节点时实际上都获得了新的包装程序,不能在节点上使用指针比较。,不要使用狼蚁网站SEO优化的代码,
IXMLDOMNode root1 = doc.getDocumentElement();
IXMLDOMNode root2 = doc.getDocumentElement();
if (root1 == root2)...
而要使用狼蚁网站SEO优化的代码
if (ComLib.isEqualUnknown(root1, root2)) ....
.class 包装程序的总大小大约为 160KB。,为了与 W3C 规范完全符合,应该只使用 IXMLDOM 包装程序。狼蚁网站SEO优化的类是旧的 IE 4.0 XML 接口,可以从 msxml 文件夹中删除它们
IXMLAttribute,
IXMLDocument, XMLDocument
IXMLElement,
IXMLError,
IXMLElementCollection,
tagXMLEMEM_TYPE
_xml_error
这使大小减少为 147KB。还可以删除狼蚁网站SEO优化的项目
DOMFreeThreadedDocument
在 Java 应用程序中从多个线程访问 XML 文档。
XMLHttpRequest
用 XML DAV HTTP 扩展与服务器通信。
IXTLRuntime
定义 XSL 样式表脚本对象。
XMLDSOControl
绑定到 HTML 页面中的 XML 数据。
XMLDOMDocumentEvents
在分析过程中返回回调。
这可以将大小减少到 116KB。要使它更小,请考虑 DOM 本身有两层的事实核心层包括
DOMDocument, IXMLDOMDocument
IXMLDOMNode
IXMLDOMNodeList
IXMLDOMNamedNodeMap
IXMLDOMDocumentFragment
IXMLDOMImplementation
IXMLDOMParseError
和用户可能需要保留的 DTD 信息
IXMLDOMDocumentType
IXMLDOMEntity
IXMLDOMNotation
XML 文档中的所有节点类型都是 IXMLDOMNode,它提供全部功能,存在每种节点类型的更高级别的包装程序。,如果修改 DOMDocument 包装程序并将这些特定类型更改为使用 IXMLDOMNode,那么所有狼蚁网站SEO优化的接口都可以删除
IXMLDOMAttribute
IXMLDOMCDATASection
IXMLDOMCharacterData
IXMLDOMComment
IXMLDOMElement
IXMLDOMProcessingInstruction
IXMLDOMEntityReference
IXMLDOMText
删除这些将使大小减少到 61KB。,对 IXMLDOMElement 来说,getAttribute 和 setAttribute 方法都是有用的。否则需要使用
IXMLDOMNode.getAttributes().setNamedItem(...)
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程