Ufikiaji wa Majina ya XML DOM

Kwa kutumia DOM, unaweza kufikia mifumo yote kwenye wasafiri wa XML.

Mfano

Mfano huu usesha faili ya XML books.xml.

Fungu loadXMLDoc()inaendelea kwenye JavaScript kina, inayotumika kusakinisha faili ya XML.

Kufikia mifumo kwa kina kwenye orodha ya mifumo
Mfano huu usesha methodi ya getElementsByTagname() kufikia mifumo ya kathama tatu ya <title> kwenye "books.xml".
Kumiongoza mifumo kwa mafungo ya length
Mfano huu usesha mafungo ya length kumiongoza mifumo ya zote <title> kwenye "books.xml".
Kunia angalau ya aina ya mifumo ya kawaida
Mfano huu usesha mafungo ya nodeType kufikia aina ya mifumo ya kawaida kwenye mifumo ya "books.xml".
Kukiongoza mifumo
Mfano huu usesha mafungo ya nodeType kusaidia kumalizia mifumo ya "books.xml".
Kukiongoza mifumo kwa mawasiliano ya mifumo
Mfano huu usesha mafungo ya nodeType na nextSibling kusaidia kumalizia mifumo ya "books.xml".

Kufikia mifumo

Unaweza kufikia mifumo kwa tatizo tofauti:

  1. Kwa kutumia methodi ya getElementsByTagName()
  2. Kwa kutumia mifumo ya kufikia kwenye mti wa mifumo
  3. Kwa kutumia mawasiliano ya mifumo kwenye mti wa mifumo

Methodi ya getElementsByTagName()

getElementsByTagName() inaonyesha zote za kina msingi kifupi kimeza.

mashairi

node.getElementsByTagName("tagname");

Mfano

Mifano hizi inatuma kina ya <title> zote katika kina ya x:

x.getElementsByTagName("title");

Tunaamua, mifano ya juu inatuma kina ya <title> katika x. Kuwaingia kina ya <title> zote katika ujumbe wa XML, tumekuwa na:

xmlDoc.getElementsByTagName("title");

Hapa, xmlDoc ni ujumbe wa kuzima (kina wa ujumbe).

DOM Node List

getElementsByTagName() inatuma orodha ya kina (node list). Orodha ya kina ni orodha ya kina.

Kutumia loadXMLDoc() 把 "books.xml"Kuwaingia xmlDoc

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Inaweza kutumia kivinjari kufikia kina ya <title> katika x. Kuifikia kina ya tatu ya <title>, inaweza kuandika:

y=x[2];

TIY

Tahadhari:Kivinjari kilianza na 0.

Katika sekina zaidi ya ujumbe huu, utakupata ujumbe zaidi kuhusu Node List.

DOM Node List Length

Propeti ya length inasababisha ukurabu wa orodha ya kina (ingawa ina uwezo wa kina).

Unaweza kutumia propeti ya length kuongeza orodha ya kina:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i

Mfano wa ujumbe:

  1. Kutumia loadXMLDoc() 把 "books.xml"Kuwaingia xmlDoc
  2. Pata kina ya <title> zote
  3. Inasaidia kushika thamani ya kina ya <title> kwa ujumbe wa matokeo

TIY

Node Type

Dokument ya XML documentElement vipso ni kina wa kuzima

kina nodeName vipso ni jina la kina

kina nodeType Vipso ni aina ya kina

Wewe utakupata ujumbe zaidi kuhusu vipso vya kina katika sekina zaidi ya ujumbe huu.

TIY

Jifunze kina

Mtaani hizi ya chaguo inayofanana kina kina ya kina wa kuzingatia kina kina kwa aina ya kina:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i

Mfano wa ujumbe:

  1. 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. Pata mabaki ya kina ya kizito
  3. Tinga mtafuta aina ya aina ya kina kila mtoaji. Ikiwa aina ya kina ni "1", inaona kina msingi
  4. 如果是元素节点,则输出节点的名称

TIY

利用节点的关系进行导航

下面的代码通过利用节点的关系在节点树中进行导航:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i");
  }
y=y.nextSibling;
}
  1. 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 获得第一个 book 元素的子节点
  3. 把 "y" 变量设置为第一个 book 元素的第一个子节点
  4. 检查每个子节点的节点类型,如果节点类型是 "1",则是元素节点
  5. 如果是元素节点,则输出该节点的名称
  6. 把 "y" 变量设置为下一个同级节点,并再次运行循环

TIY