Kuharibika katika mti wa maelezo ya XML DOM

Kuharibika (Traverse) inamaana kuendelea kwenye mti wa maelezo.

Kuharibika katika mti wa maelezo

Inaonekana kwamba utaagiza kumtaarifu maelezo ya XML, kama: wakati una lazima uchukue thamani za kila kitu.

Mchezo hii inaitwa 'kuharibika katika mti wa maelezo'

Mfano hii una huchukua kila mwanzi wa <book> kwa sababu ya kumtaarifu jina na thamani yao:

Mfano

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var x, i ,xmlDoc;
var txt = "";
var text = "<book>" +
"<title>雅舍谈吃</title>" +
"<author>梁实秋</author>" +
"<year>2013</year>" +
"</book>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
// documentElement inaonyesha mabaki cha juu zaidi
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length ;i++) {
    txt += x[i].nodeName + ": " + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>

Jaribu tena

Mfano wa uhariri:

  1. Inafikia string ya XML kwa xmlDoc Kati
  2. Inafikia mabaki ya mabaki wa mabaki cha juu
  3. Inonyesha jina la kila mabaki wa mabaki, na thamani ya mabaki ya mtafiti

Muendo wa mabahari katika kusoma DOM

Mabahari yote ya kuzioa kwa sasa inasimamia W3C DOM maadili.

Kamwe na kawaida, mabahari yanafikia kama zamani. Mfano muhimu ni:

Jinsi ya kuhifadhi haki wakati wengi na mabaki ya mtafiti

DOM - haki wakati wengi na mabaki ya mtafiti

XML inaonyesha mabaki ya mtafiti au wakati wengi kati ya mabaki. Kama inahitaji msichana wa uhariri kama Notepad, hii inaonekana kawaida.

Mfano hili (kwa msichana wa uhariri) inaonyesha CR/LF (mabaki ya mtafiti) kati ya kila muda, na mabaki ya kwanza ya kila mabaki inaonyesha kiumbezi wa kuzungumza kwa mbili:

<book>
  <title>雅舍谈吃</title>
  <author>梁实秋</author>
  <press>江苏文艺出版社</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>

Internet Explorer 9 na versioni zaidi za zamani haikubali haki wakati wengi na mabaki ya mtafiti, wakati mabahari mengine hawakubali wakati hii.

Mfano hili wa hii inaonyesha namba ya kwanza ya mabaki ya kitengo cha juu cha (books.xml). IE9 na versioni zaidi ya zamani inaonyesha 6 mabaki, na IE10 na versioni zaidi za zamani na mabahari mengine inaonyesha 9 mabaki:

Mfano

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    x = xmlDoc.documentElement.childNodes;
    document.getElementById("demo").innerHTML =
    "Makose ya vijuguni: " + x.length;
}

Jaribu tena

PCDATA - Data ya heri ya kufichia (Parsed Character Data)

Uchunguzi wa XML huitumia kufichia matukio yote kwenye wasifu wa vijuguni vya XML.

Kuanza kufichia vijuguni vya XML, pia inafichia matukio kati ya viwango vya XML:

<message>Matukio hii pia inaitwa kufichia</message>

Uchunguzi huitumia hii kufichia vijuguni vya hivi kwa sababu vijuguni vya XML vinaweza kuwa na vijuguni vingine, kama hivi, kwa sababu <name> kina vijuguni vingine vingine (first na last):

<name><first>Bill</first><last>Gates</last></name>

Uchunguzi huitumia hii kufichia vijuguni vya hivi:

<name>
  <first>Bill</first>
  <last>Gates</last>
</name>

“Kuweza kufichia data ya heri” (PCDATA) mafano wa kielewa data ya ujumbe unaotafutikia na uchunguzi wa XML.

CDATA - Data ya heri ya heri (Unparsed Character Data)

Mafano ya kifupi CDATA kwa kielewa data ya ujumbe unaotafutikia ingawa uchunguzi hauwezi kufichia.

"<" na "&" na mengine yanayotarajia kwenye ulemavu wa XML.

"<" inakua kosa kwa sababu uchunguzi inaelezea kama kuanza kwa sababu ya heri.

"&" inakua kosa kwa sababu uchunguzi inaelezea kama kuanza kwa sababu ya heri.

Baadhi ya matukio (kama kipindi cha JavaScript) ina nguvu ya kumchora "<" au "&" heri, kwa sababu uchunguzi unaonekana kama kuanza kwa sababu ya heri.

Hii inaonyesha wote kwenye eneo ya CDATA kwa kufaa kufikiria kufichwa na kufaa kuwa CDATA.

CDATA ya kuanza na "<![CDATA[" Kuanza, kwa "]]>" Kisha:

<script>
<![CDATA[
function matchwo(a,b) {
    ingawa (a < b na a < 0) {
        rua 1;
    hata ingawa {
        kama 0;
    }
}
]]>
</script>

在上面的示例中,解析器会忽略 CDATA 部分内的所有内容。

关于 CDATA 部分的注意事项:

CDATA 部分不能包含字符串 "]]>"。不允许嵌套 CDATA 部分。

标记 CDATA 部分结尾的 "]]>" 不能包含空格或换行符。