Rumah pembangunan bahagian belakang Tutorial XML/RSS XML入门的常见问题(四)

XML入门的常见问题(四)

Dec 22, 2016 pm 05:39 PM
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*, 
  IXMLElementCollection*, 
  tagXMLEMEM_TYPE* 
  _xml_error* 

 

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


   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,那么所有下面的接口都可以删除:


   IXMLDOMAttribute 
  IXMLDOMCDATASection 
  IXMLDOMCharacterData 
  IXMLDOMComment 
  IXMLDOMElement 
  IXMLDOMProcessingInstruction 
  IXMLDOMEntityReference 
  IXMLDOMText 
 

  删除这些将使大小减少到 61KB。但是,对 IXMLDOMElement 来说,getAttribute 和 setAttribute 方法都是有用的。否则需要使用:


   IXMLDOMNode.getAttributes().setNamedItem(...)

 以上就是XML入门的常见问题(四)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bolehkah saya membuka fail XML menggunakan PowerPoint? Bolehkah saya membuka fail XML menggunakan PowerPoint? Feb 19, 2024 pm 09:06 PM

Bolehkah fail XML dibuka dengan PPT? XML, Extensible Markup Language (Extensible Markup Language), ialah bahasa markup universal yang digunakan secara meluas dalam pertukaran data dan penyimpanan data. Berbanding dengan HTML, XML lebih fleksibel dan boleh menentukan tag dan struktur datanya sendiri, menjadikan penyimpanan dan pertukaran data lebih mudah dan bersatu. PPT, atau PowerPoint, ialah perisian yang dibangunkan oleh Microsoft untuk membuat pembentangan. Ia menyediakan cara yang komprehensif untuk

Menapis dan menyusun data XML menggunakan Python Menapis dan menyusun data XML menggunakan Python Aug 07, 2023 pm 04:17 PM

Melaksanakan penapisan dan pengisihan data XML menggunakan Python Pengenalan: XML ialah format pertukaran data yang biasa digunakan yang menyimpan data dalam bentuk teg dan atribut. Apabila memproses data XML, kami selalunya perlu menapis dan mengisih data. Python menyediakan banyak alat dan perpustakaan yang berguna untuk memproses data XML. Artikel ini akan memperkenalkan cara menggunakan Python untuk menapis dan mengisih data XML. Membaca fail XML Sebelum kita mula, kita perlu membaca fail XML. Python mempunyai banyak perpustakaan pemprosesan XML,

Tukar data XML kepada format CSV dalam Python Tukar data XML kepada format CSV dalam Python Aug 11, 2023 pm 07:41 PM

Tukar data XML dalam Python kepada format CSV XML (ExtensibleMarkupLanguage) ialah bahasa penanda boleh diperluas yang biasa digunakan untuk penyimpanan dan penghantaran data. CSV (CommaSeparatedValues) ialah format fail teks dipisahkan koma yang biasa digunakan untuk import dan eksport data. Semasa memproses data, kadangkala data XML perlu ditukar kepada format CSV untuk analisis dan pemprosesan yang mudah. Python adalah yang kuat

Menggunakan Python untuk menggabungkan dan menyahduplikasi data XML Menggunakan Python untuk menggabungkan dan menyahduplikasi data XML Aug 07, 2023 am 11:33 AM

Menggunakan Python untuk menggabungkan dan menyahduplikasi data XML XML (eXtensibleMarkupLanguage) ialah bahasa penanda yang digunakan untuk menyimpan dan menghantar data. Apabila memproses data XML, kadangkala kita perlu menggabungkan berbilang fail XML menjadi satu, atau mengalih keluar data pendua. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan penggabungan dan penyahduplikasian data XML, dan memberikan contoh kod yang sepadan. 1. Penggabungan data XML Apabila kita mempunyai berbilang fail XML, kita perlu menggabungkannya

Python melaksanakan penukaran antara XML dan JSON Python melaksanakan penukaran antara XML dan JSON Aug 07, 2023 pm 07:10 PM

Python melaksanakan penukaran antara XML dan JSON Pengenalan: Dalam proses pembangunan harian, kita selalunya perlu menukar data antara format yang berbeza. XML dan JSON ialah format pertukaran data biasa Dalam Python, kita boleh menggunakan pelbagai perpustakaan untuk menukar antara XML dan JSON. Artikel ini akan memperkenalkan beberapa kaedah yang biasa digunakan, dengan contoh kod. 1. Untuk menukar XML kepada JSON dalam Python, kita boleh menggunakan modul xml.etree.ElementTree

Mengendalikan ralat dan pengecualian dalam XML menggunakan Python Mengendalikan ralat dan pengecualian dalam XML menggunakan Python Aug 08, 2023 pm 12:25 PM

Mengendalikan Ralat dan Pengecualian dalam XML Menggunakan Python XML ialah format data yang biasa digunakan untuk menyimpan dan mewakili data berstruktur. Apabila kami menggunakan Python untuk memproses XML, kadangkala kami mungkin menghadapi beberapa ralat dan pengecualian. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Python untuk mengendalikan ralat dan pengecualian dalam XML, dan menyediakan beberapa kod sampel untuk rujukan. Gunakan pernyataan cuba-kecuali untuk menangkap ralat penghuraian XML Apabila kami menggunakan Python untuk menghuraikan XML, kadangkala kami mungkin menghadapi beberapa

Import data XML ke dalam pangkalan data menggunakan PHP Import data XML ke dalam pangkalan data menggunakan PHP Aug 07, 2023 am 09:58 AM

Mengimport data XML ke dalam pangkalan data menggunakan PHP Pengenalan: Semasa pembangunan, kita sering perlu mengimport data luaran ke dalam pangkalan data untuk pemprosesan dan analisis selanjutnya. Sebagai format pertukaran data yang biasa digunakan, XML sering digunakan untuk menyimpan dan menghantar data berstruktur. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengimport data XML ke dalam pangkalan data. Langkah 1: Menghuraikan fail XML Mula-mula, kita perlu menghuraikan fail XML dan mengekstrak data yang diperlukan. PHP menyediakan beberapa cara untuk menghuraikan XML, yang paling biasa digunakan ialah menggunakan Mudah

Gunakan PHP dan XML untuk memproses dan memaparkan geolokasi dan data peta Gunakan PHP dan XML untuk memproses dan memaparkan geolokasi dan data peta Aug 01, 2023 am 08:37 AM

Memproses dan memaparkan data geolokasi dan peta menggunakan PHP dan Gambaran Keseluruhan XML: Memproses dan memaparkan data geolokasi dan peta adalah keperluan biasa semasa membangunkan aplikasi web. PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular yang boleh berinteraksi dengan data dalam format XML. Artikel ini menerangkan cara menggunakan PHP dan XML untuk memproses dan memaparkan data geolokasi dan peta serta menyediakan beberapa kod sampel. 1. Penyediaan: Sebelum memulakan, anda perlu memastikan bahawa PHP dan sambungan yang berkaitan, seperti Simple, dipasang pada pelayan

See all articles