XML DOM ਨੋਡ ਲਿਸਟ

getElementsByTagName() ਮੈਥਡ ਅਤੇ childNodes ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨਾਲ ਵਾਪਸ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ

ਉਦਾਹਰਣ

ਹੇਠ ਦਿੱਤੇ ਉਦਾਹਰਣ ਵਿੱਚ XML ਫਾਈਲ ਦਾ ਉਪਯੋਗ ਕੀਤਾ ਗਿਆ ਹੈ books.xml.

ਫੰਕਸ਼ਨ loadXMLDoc()ਬਾਹਰੀ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਲਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ

ਪਹਿਲੇ <title> ਐਕਸਪੈਕਟ ਦੇ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਲੈਣਾ
"books.xml" ਵਿੱਚ ਪਹਿਲੇ <title> ਐਕਸਪੈਕਟ ਦੇ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਲਿਆ ਜਾਂਦਾ ਹੈ
ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਚੱਕਰ ਕਰਨ ਲਈ length ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਦੀ ਮਦਦ ਨਾਲ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ "books.xml" ਵਿੱਚ ਸਾਰੇ <title> ਐਕਸਪੈਕਟ ਨੂੰ ਲਿਸਟ ਅਤੇ length ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਦੀ ਮਦਦ ਨਾਲ ਚੱਕਰ ਕਰਨਾ
ਐਕਸਪੈਕਟ ਦੇ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਲੈਣਾ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ "books.xml" ਵਿੱਚ ਪਹਿਲੇ <title> ਐਕਸਪੈਕਟ ਦੇ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਲਿਆ ਜਾਂਦਾ ਹੈ

DOM ਨੋਡ ਲਿਸਟ

childNodes ਜਾਂ getElementsByTagName() ਮੈਥਡ ਜਿਹੇ ਵਿਸ਼ੇਸ਼ ਸਵੈਯੰਤਰ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਏਕਸ਼ਨ ਨੂੰ ਵਾਪਸ ਦਿੰਦੇ ਹਨ

ਨੋਡ ਲਿਸਟ ਪ੍ਰਤੀਏਕਸ਼ਨ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਉਪਯੋਗ ਕਰੋ

ਇਹ ਟੈਕਸਟ ਪਾਠ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ

ਹੇਠਲੇ ਚਿੱਤਰ "" ਦਰਸਾਉਂਦਾ ਹੈ:books.xml" ਵਿੱਚ <title> ਐਲੀਮੈਂਟ ਦੀ ਨੋਡ ਸੂਚੀ:

DOM نود لسٹ

ਹੇਠ ਲਿਖੇ ਕੋਡ ਸ਼ੈਕਟ ਵਰਤੋਂ ਕਰਕੇ loadXMLDoc() " ਵਿੱਚ "books.xml" ਨੂੰ xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ, ਅਤੇ "books.xml" ਵਿੱਚ title ਐਲੀਮੈਂਟ ਦੀ ਇੱਕ ਨੋਡ ਸੂਚੀ:

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

ਉੱਪਰੋਕਤ ਵਾਕ ਚਲਾਉਣ ਤੋਂ ਬਾਅਦ, x ਇੱਕ NodeList ਪ੍ਰਤੀਯੋਗੀ ਬਣ ਜਾਵੇਗਾ。

ਹੇਠਲੇ ਕੋਡ ਫਰੈਗਮੈਂਟ ਨੋਡ ਸੂਚੀ x ਵਿੱਚ ਪਹਿਲੇ <title> ਐਲੀਮੈਂਟ ਤੋਂ ਟੈਕਸਟ ਨੂੰ ਵਾਪਸ ਦੇਣਾ ਹੈ:

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

ਉੱਪਰੋਕਤ ਵਾਕ ਚਲਾਉਣ ਤੋਂ ਬਾਅਦ, txt = "Everyday Italian" ਹੋ ਜਾਵੇਗਾ。

TIY

Node List Length

NodeList ਪ੍ਰਤੀਯੋਗੀ ਆਪਣੀ ਅੱਪਡੇਟ ਰੱਖਦੀ ਹੈ। ਜੇਕਰ ਇਲਾਕੇ ਹਟਾਏ ਜਾਂ ਜੋੜੇ ਜਾਣ ਤਾਂ ਸੂਚੀ ਆਪਣੇ ਆਪ ਜਾਂਚ ਕਰੇਗੀ。

ਨੋਡ ਸੂਚੀ ਦੀ length ਪ੍ਰਤੀਯੋਗੀ ਸੂਚੀ ਵਿੱਚ ਨੋਡਾਂ ਦੀ ਗਿਣਤੀ ਹੁੰਦੀ ਹੈ。

ਹੇਠ ਲਿਖੇ ਕੋਡ ਸ਼ੈਕਟ ਵਰਤੋਂ ਕਰਕੇ loadXMLDoc() "books.xml" xmlDoc ਲੋਡ ਕਰੋ, ਅਤੇ "books.xml" ਵਿੱਚ <title> ਐਲੀਮੈਂਟਾਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਵਾਪਸ ਦੇਣਾ ਹੈ:

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

ਉੱਪਰੋਕਤ ਵਾਕ ਚਲਾਉਣ ਤੋਂ ਬਾਅਦ, x = 4 ਹੋ ਜਾਵੇਗਾ。

ਨੋਡ ਸੂਚੀ ਦੀ ਲੰਮਾਈ ਵਰਤੋਂ ਕਰਕੇ ਸਰਕਾਰੀ ਸੂਚੀ ਵਿੱਚ ਸਾਰੇ ਐਲੀਮੈਂਟਾਂ ਦਾ ਚੱਕਰ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ。

ਹੇਠਲੇ ਕੋਡ ਫਰੈਗਮੈਂਟ ਲੰਮਾਈ ਪ੍ਰਤੀਯੋਗੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿਉਂਕਿ <title> ਐਲੀਮੈਂਟਾਂ ਦੀ ਸੂਚੀ ਦਾ ਚੱਕਰ ਲਗਾਉਣਾ ਹੈ:

xmlDoc=loadXMLDoc("books.xml");
//the x variable will hold a node list
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

ਆਉਟਪੁਟ:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

ਉਦਾਹਰਣ ਸਪਸ਼ਟੀਕਰਣ:

  • ਵਰਤੋਂ ਕਰਕੇ loadXMLDoc() "books.xml" xmlDoc ਲੋਡ ਕਰੋ
  • ਸਾਰੇ title ਐਲੀਮੈਂਟਾਂ ਦੀ ਨੋਡ ਸੂਚੀ ਦੇ x ਮੁੱਲ ਨੂੰ ਸੈਟ ਕਰੋ
  • ਸਾਰੇ <title> ਐਲੀਮੈਂਟਾਂ ਦੇ ਟੈਕਸਟ ਨੋਡ ਦੇ ਮੁੱਲ ਨੂੰ ਬਾਹਰ ਕੱਢੋ

TIY

DOM ਅਟਰੀਬਿਊਟ ਲਿਸਟ (ਨੇਮਡ ਨੋਡ ਮੈਪ)

ਐਲੀਮੈਂਟ ਨੋਡ ਦੇ attributes ਪ੍ਰਤੀਯੋਗੀ ਪ੍ਰਤੀਯੋਗੀ ਨੋਡ ਦੀ ਸੂਚੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ。

ਇਹ ਨੇਮਡ ਨੋਡ ਮੈਪ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਨੋਡ ਸੂਚੀ ਨਾਲ ਕੁਝ ਅੰਤਰਾਂ ਦੇ ਇਲਾਵਾ, ਇਹ ਮੈਥਡ ਅਤੇ ਪ੍ਰਤੀਯੋਗੀਆਂ 'ਤੇ ਕੁਝ ਅੰਤਰ ਰੱਖਦਾ ਹੈ।

ਪ੍ਰਤੀਯੋਗੀ ਸੂਚੀ ਆਪਣੀ ਅੱਪਡੇਟ ਰੱਖਦੀ ਹੈ। ਜੇਕਰ ਪ੍ਰਤੀਯੋਗੀ ਹਟਾਇਆ ਜਾਂ ਜੋੜਿਆ ਜਾਵੇ ਤਾਂ ਇਹ ਸੂਚੀ ਆਪਣੇ ਆਪ ਜਾਂਚ ਕਰੇਗੀ।

ਹੇਠ ਲਿਖੇ ਕੋਡ ਸ਼ੈਕਟ ਵਰਤੋਂ ਕਰਕੇ loadXMLDoc() "books.xml" ਨੂੰ xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ, ਅਤੇ ਤੋਂ "books.xml" ਵਿੱਚ ਪਹਿਲੇ <book> ਐਲੀਮੈਂਟ ਦੇ ਪ੍ਰਾਪਰਟੀ ਨੋਡ ਦੀ ਸੂਚੀ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

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

ਹੇਠ ਲਿਖੇ ਕੋਡ ਸ਼ੈਕਟ ਇੱਕ book ਦੀ "category" ਪ੍ਰਾਪਰਟੀ ਦਾ ਮੁੱਲ ਅਤੇ ਉਸ ਦੀ ਪ੍ਰਾਪਰਟੀਆਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

ਆਉਟਪੁਟ:

children
1

ਉਦਾਹਰਣ ਸਪਸ਼ਟੀਕਰਣ:

  • ਵਰਤੋਂ ਕਰਕੇ loadXMLDoc() "books.xml" ਵਿੱਚ xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ
  • x ਨੂੰ ਪਹਿਲੇ <book> ਐਲੀਮੈਂਟ ਦੇ ਸਾਰੇ ਪ੍ਰਾਪਰਟੀਆਂ ਦੀ ਸੂਚੀ ਵਿੱਚ ਸੈੱਟ ਕਰੋ
  • "category" ਪ੍ਰਾਪਰਟੀ ਦਾ ਮੁੱਲ ਬਾਹਰ ਕਰੋ
  • ਆਉਟਪੁਟ ਲੰਬਾਈ ਦੀ ਪ੍ਰਾਪਤੀ

TIY