PHP XML DOM

Sisäänrakennettu DOM-tulkki mahdollistaa XML-dokumenttien käsittelyn PHP:ssä.

Mitä DOM on?

W3C DOM tarjoaa standardeja objekteja HTML- ja XML-dokumentteja varten sekä standardeja käyttöliittymiä näiden dokumenttien käsittelemiseksi.

W3C DOM jaetaan eri osiin (Core, XML ja HTML) ja eri tasoisiin (DOM Level 1/2/3):

  • Core DOM - Määrittelee standardeja objekteja kaikille rakenteellisille dokumenteille
  • XML DOM - Määrittelee standardeja objekteja XML-dokumentteja varten
  • HTML DOM - Määrittelee standardeja objekteja HTML-dokumentteja varten

如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程

XML-tulkinta

Jos haluat lukea ja päivittää - luoda ja käsitellä - XML-dokumenttia, tarvitset XML-tulkki.

On kaksi perus XML-tulkintatyyppiä:

  • Puuvarttopohjainen tulkki:Tämä tulkki muuntaa XML-dokumentin puuvarttomuodoksi. Se analysoi koko dokumentin ja tarjoaa API:n, jolla voidaan käyttää puun elementtejä, kuten dokumentiobjektimallia (DOM).
  • Tapahtumapohjainen tulkki:Näkee XML-dokumentin tapahtumina. Kun tietty tapahtuma tapahtuu, tulkki kutsuu funktioita käsittelemään sitä.

DOM-tulkki on puuvartotulkki.

Katso seuraava XML-dokumentin osa:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>John</from>

XML DOM näkee XML:n puuvarttomuodossa:

  • Taso 1: XML-dokumentti
  • Taso 2: Juurielementti: <from>
  • Taso 3: Tekstielementti: "John"

Asennus

DOM XML-tulkki on PHP:n ytimen osa. Näitä funktioita ei tarvitse asentaa.

XML-tiedosto

Käytämme esimerkissämme seuraavaa XML-tiedostoa:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Muistutus</heading>
<body>Muista kokous!
</note>

Lataa ja tulosta XML

Meidän täytyy aloittaa XML-tulkki, ladata XML ja tulostaa se:

例子

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

以上代码的输出:

George John Muistutus Muista kokous!

Jos tarkastat koodia selaimen ikkunassa, näet seuraavat HTML-koodit:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Muistutus</heading>
<body>Muista kokous!
</note>

上面的例子创建了一个 DOMDocument-Object,并把 "note.xml" 中的 XML 载入这个文档对象中。

saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它。

循环 XML

我们要初始化 XML 解析器,加载 XML,并循环 <note> 元素的所有元素:

例子

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

以上代码的输出:

#text = 
to = George
#text = 
from = John
#text = 
heading = Muistutus
#text = 
body = Älä unohda kokousta!
#text =

在上面的例子中,您看到了每个元素之间存在空的文本节点。

当 XML 生成时,它通常会在节点之间包含空白。XML DOM 解析器把它们当作普通的元素,如果您不注意它们,有时会产生问题。

如果您希望学习更多有关 XML DOM 的知识,请访问我们的 XML DOM 教程