XML DOM ਨੋਡ ਸੂਚੀ

getElementsByTagName() ਕਿਸੇ ਢੰਗ ਨੂੰ ਵਰਤੋਂ ਕਰਦੇ ਹੋ childNodes ਇਜਾਜ਼ਤ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਤਾਂ ਨੋਡ ਲਿਸਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。

DOM ਨੋਡ ਸੂਚੀ

ਜਦੋਂ ਤੁਸੀਂ childNodes ਜਾਂ getElementsByTagName() ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਇਜਾਜ਼ਤ ਜਾਂ ਕਿਸੇ ਢੰਗ ਨੂੰ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਤਾਂ NodeList ਆਬਜੈਕਟ ਵਾਪਸ ਦਿੱਤਾ ਜਾਵੇਗਾ。

NodeList ਆਬਜੈਕਟ ਨੋਡ ਦੀ ਲਿਸਟ ਦਿਸਦਾ ਹੈ ਅਤੇ ਉਸ ਦੀ ਕਿਸਮ XML ਵਿੱਚ ਦੇਖੀ ਜਾਂਦੀ ਹੈ。

ਨੋਡ ਲਿਸਟ ਵਿੱਚ ਨੋਡਸ ਨੂੰ 0 ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਸਿੱਕੀ ਨਿਰੰਤਰਤਾ ਨਾਲ ਪਹੁੰਚਿਆ ਜਾ ਸਕਦਾ ਹੈ。

ਇਹ ਚਿੱਤਰ ਇਹ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ: books.xml ਸੀ <title> ਐਲੀਮੈਂਟ ਦੇ ਨੋਡ ਲਿਸਟ:

DOM ਨੋਡ ਸੂਚੀ

ਇਹ ਮੰਨਿਆ ਜਾਵੇਗਾ ਕਿ "books.xml" ਵਰਗੀ ਵੱਡੀ ਵਸਤੂ xmlDoc ਵਿੱਚ ਲੋਡ ਹੋ ਚੁੱਕੀ ਹੈ。

ਇਹ ਕੋਡ ਸਕਿੰਟ ਬੁੱਕਸ.xml ਵਿੱਚ title ਐਲੀਮੈਂਟ ਦੇ ਨੋਡ ਲਿਸਟ ਨੂੰ ਵਾਪਸ ਦਿੰਦਾ ਹੈ:

x = xmlDoc.getElementsByTagName("title");

ਇਸ ਕਮਾਂਡ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਬਾਅਦ، x ਇੱਕ NodeList ਆਬਜੈਕਟ ਬਣ ਜਾਵੇਗਾ。

ਨਿਮਨਲਿਖਤ ਕੋਡ ਨੋਡ ਲਿਸਟ (x) ਵਿੱਚ ਪਹਿਲੇ <title> ਐਲੀਮੈਂਟ ਦੇ ਟੈਕਸਟ ਨੂੰ ਬਣਾਉਂਦਾ ਹੈ:

ਉਦਾਹਰਣ

var txt = x[0].childNodes[0].nodeValue;

ਖੁਦ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਉੱਪਰੋਕਤ ਸਟੇਟਮੈਂਟ ਚਲਣ ਤੋਂ ਬਾਅਦ txt = "雅舍谈吃"。

ਨੋਡ ਲਿਸਟ ਦੀ ਗਿਣਤੀ

NodeList ਆਬਜੈਕਟ ਆਪਣੇ ਆਪ ਅੱਪਡੇਟ ਹੋ ਜਾਵੇਗਾ। ਜੇਕਰ ਐਲੀਮੈਂਟ ਹਟਾਉਣ ਜਾਂ ਜੋੜਨ ਦਾ ਕੰਮ ਕਰੋ ਤਾਂ ਲਿਸਟ ਆਪਣੇ ਆਪ ਅੱਪਡੇਟ ਹੋ ਜਾਵੇਗੀ。

ਨੋਡ ਲਿਸਟ ਦੀ length ਪੈਟਰੀਟਸ ਹੈ ਲਿਸਟ ਵਿੱਚ ਨੋਡਾਂ ਦੀ ਗਿਣਤੀ。

ਇਹ ਕੋਡ "books.xml" ਵਿੱਚ <title> ਐਲੀਮੈਂਟ ਦੀ ਗਿਣਤੀ ਬਣਾਉਂਦਾ ਹੈ:

x = xmlDoc.getElementsByTagName('title').length;

ਉੱਪਰੋਕਤ ਸਟੇਟਮੈਂਟ ਚਲਣ ਤੋਂ ਬਾਅਦx ਦਾ ਮੁੱਲ 5 ਹੈ。

ਨੋਡ ਲਿਸਟ ਦੀ ਗਿਣਤੀ ਨੂੰ ਸ਼ਾਮਲ ਕਰਕੇ ਲਿਸਟ ਵਿੱਚ ਸਾਰੇ ਐਲੀਮੈਂਟਾਂ ਦੇ ਪੱਧਰ ਤੇ ਚੱਕਰ ਲਗਾਓ

ਇਹ ਕੋਡ length ਪੈਟਰੀਟਸ ਦੀ ਗਿਣਤੀ ਦੇ ਮੱਦੇ ਨਾਲ <title> ਐਲੀਮੈਂਟ ਲਿਸਟ ਦੇ ਪੈਟਰੀਟਸ ਦੀ ਗਿਣਤੀ ਦੇ ਪੱਧਰ ਤੇ ਚੱਕਰ ਲਗਾਓ

ਉਦਾਹਰਣ

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i < xLen; i++) {
    txt += (x[i].childNodes[0].nodeValue) + " ";
}

ਖੁਦ ਕੋਸ਼ਿਸ਼ ਕਰੋ

例子解释:

  1. 假设 books.xml ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ xmlDoc
  2. ਵਿਸ਼ੇਸ਼ ਨੋਡ ਲਿਸਟ ਦੀ ਮਦਦ ਨਾਲ ਸੰਭਾਲੇ ਜਾਣ ਵਾਲੇ x ਵਿੱਚ ਸਭ ਪੁਸਤਕ ਐਲੀਮੈਂਟ ਦੇ ਨੋਡ ਸ਼ਾਮਲ ਕਰੋ
  3. ਪਰਸੇ <title> ਐਲੀਮੈਂਟ ਵਿੱਚ ਟੈਕਸਟ ਨੋਡ ਦਾ ਮੁੱਲ ਲੈਂਦਾ ਹੈ

DOM ਪੈਟਰੀਟਸ ਲਿਸਟ (named node map)

ਐਲੀਮੈਂਟ ਦੇ attributes ਪੈਟਰੀਟਸ ਨੋਡ ਲਿਸਟ ਬਣਾਉਂਦਾ ਹੈ。

ਇਹ ਨਾਮਕ ਨੋਡ ਮੈਪ (named node map) ਕਹਿੰਦੇ ਹਨ, ਜੋ ਨੋਡ ਲਿਸਟ ਨਾਲ ਵਰਗਾ ਹੈ, ਪਰ ਮੱਥਦਾਂ ਅਤੇ ਪੈਟਰੀਟਸ ਵਿੱਚ ਅੰਤਰ ਹੈ。

ਪੈਟਰੀਟਸ ਲਿਸਟ ਨਵਾਂ ਰੂਪ ਬਣਾਉਂਦਾ ਹੈ। ਜੇਕਰ ਪੈਟਰੀਟਸ ਹਟਾਉਣ ਜਾਂ ਜੋੜਨ ਦਾ ਕੰਮ ਕਰੋ ਤਾਂ ਲਿਸਟ ਆਪਣੇ ਆਪ ਅੱਪਡੇਟ ਹੋ ਜਾਵੇਗੀ。

ਇਹ ਕੋਡ "books.xml" ਵਿੱਚ ਪਹਿਲੇ <book> ਐਲੀਮੈਂਟ ਦੇ ਪੈਟਰੀਟਸ ਨੋਡ ਲਿਸਟ ਬਣਾਉਂਦਾ ਹੈ:

x = xmlDoc.getElementsByTagName('book')[0].attributes;

ਉੱਪਰੋਕਤ ਕੋਡ ਚਲਣ ਤੋਂ ਬਾਅਦx.length ਸਮਾਨ ਹੈ ਪੈਟਰੀਟਸ ਦੀ ਗਿਣਤੀ, ਜਿਸ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਵਰਤ ਸਕਦੇ ਹਾਂ: x.getNamedItem() ਇਹ ਇੱਕ ਪੈਟਰੀਟਸ ਨੋਡ ਬੈਂਡ ਬਣਾਉਂਦਾ ਹੈ。

ਇਹ ਕੋਡ ਪਹਿਲੇ ਪੁਸਤਕ ਦੇ "category" ਅਤੇ ਪੈਟਰੀਟਸ ਦੀ ਗਿਣਤੀ ਦਾ ਮੁੱਲ ਲੈਂਦਾ ਹੈ:

ਉਦਾਹਰਣ

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

ਖੁਦ ਕੋਸ਼ਿਸ਼ ਕਰੋ

例子解释:

  1. 假设 books.xml 被加载到 xmlDoc
  2. 设置 x 变量以保存第一个 <book> 元素的所有属性的列表
  3. 获取 "category" 属性的值以及属性列表的长度