XML DOM ਨੋਡ ਪਹੁੰਚ

DOM ਰਾਹੀਂ, ਤੁਸੀਂ XML ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਹਰੇਕ ਨੋਡ ਨੂੰ ਪਹੁੰਚ ਸਕਦੇ ਹੋ

ਉਦਾਹਰਣ

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

ਫੰਕਸ਼ਨ loadXMLDoc()ਅਤੇ ਬਾਹਰੀ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਕਿ XML ਫਾਈਲ ਲੋਡ ਕੀਤੀ ਜਾ ਸਕੇ。

ਨੋਡ ਸੂਚੀ ਵਿੱਚ ਨਿਸ਼ਾਨਨ ਨੂੰ ਵਰਤਣ ਨਾਲ ਨੋਡ ਨੂੰ ਪਹੁੰਚ
getElementsByTagName() ਮੰਦਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਕਿ "books.xml" ਵਿੱਚ ਤੀਜੇ <title> ਇਲੈਕਟ੍ਰੌਨ ਨੂੰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕੇ。
length ਪ੍ਰਤੀਯੋਗਿਤਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਲੈਕਟ੍ਰੌਨ ਨੂੰ ਸਰਕਟ ਕਰਨ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ length ਪ੍ਰਤੀਯੋਗਿਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਕਿ "books.xml" ਵਿੱਚ ਸਾਰੇ <title> ਇਲੈਕਟ੍ਰੌਨ ਨੂੰ ਸਰਕਟ ਕੀਤਾ ਜਾ ਸਕੇ。
ਰੂਪ ਨੋਡ ਦੇ ਨੋਡ ਟਾਈਪ ਨੂੰ ਦੇਖਣਾ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ nodeType ਪ੍ਰਤੀਯੋਗਿਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਕਿ "books.xml" ਵਿੱਚ ਰੂਪ ਨੋਡ ਦੇ ਨੋਡ ਟਾਈਪ ਨੂੰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕੇ。
ਇਲੈਕਟ੍ਰੌਨ ਨੋਡ ਨੂੰ ਸਰਕਟ ਕਰਨ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ nodeType ਪ੍ਰਤੀਯੋਗਿਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਕਿ "books.xml" ਵਿੱਚ ਇਲੈਕਟ੍ਰੌਨ ਨੋਡ ਦੇ ਨੋਡ ਟਾਈਪ ਨੂੰ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕੇ。
ਨੋਡ ਦੇ ਸਬੰਧ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਲੈਕਟ੍ਰੌਨ ਨੋਡ ਨੂੰ ਸਰਕਟ ਕਰਨ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ nodeType ਅਤੇ nextSibling ਪ੍ਰਤੀਯੋਗਿਤਾ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਕਿ "books.xml" ਵਿੱਚ ਇਲੈਕਟ੍ਰੌਨ ਨੋਡ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾ ਸਕੇ。

ਨੋਡ ਪਹੁੰਚ

ਤੁਸੀਂ ਨੋਡ ਨੂੰ ਤਿੰਨ ਤਰੀਕਿਆਂ ਨਾਲ ਪਹੁੰਚ ਸਕਦੇ ਹੋ

  1. getElementsByTagName() ਮੰਦਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ
  2. ਨੋਡ ਟ੍ਰੀ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਸਰਕਟ (ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ)
  3. ਨੋਡ ਦੇ ਸਬੰਧ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨੋਡ ਟ੍ਰੀ ਵਿੱਚ ਨੇਵੀਗੇਸ਼ਨ

getElementsByTagName() ਮੰਦਰ

getElementsByTagName() ਮੰਦਰ ਦੇ ਨਾਮ ਨਾਲ ਦੇਸ਼ ਦੇ ਸਾਰੇ ਤੰਤਰਾਂ ਨੂੰ ਵਾਪਸ ਕਰਦਾ ਹੈ。

ਗਿਆਨ

node.getElementsByTagName("tagname");

ਉਦਾਹਰਣ

ਹੇਠ ਦਾ ਉਦਾਹਰਣ x ਏਲੀਮੈਂਟ ਤੱਕ <title> ਏਲੀਮੈਂਟ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ:

x.getElementsByTagName("title");

ਧਿਆਨ ਰੱਖੋ ਕਿ ਉੱਪਰ ਦਾ ਉਦਾਹਰਣ ਮਾਤਰ x ਨੋਡ ਤੱਕ <title> ਏਲੀਮੈਂਟ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।ਜੇਕਰ ਤੁਸੀਂ XML ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਸਾਰੇ <title> ਏਲੀਮੈਂਟ ਪ੍ਰਦਾਨ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ:

xmlDoc.getElementsByTagName("title");

ਇੱਥੇ xmlDoc ਹੈ ਦਸਤਾਵੇਜ਼ ਹੀ (ਨੋਡ ਬਿੰਦੂ)。

DOM Node List

getElementsByTagName() ਮੱਥਦਾ ਨੋਡ ਸੂਚੀ (node list) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।ਨੋਡ ਸੂਚੀ ਨੋਡਾਂ ਦਾ ਮੁੱਲ ਹੈ。

ਹੇਠ ਲਿਖੇ ਕੋਡ ਇਸ ਵਿੱਚ ਵਰਤਣਾ loadXMLDoc() ਇਕ "books.xml" xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ ਅਤੇ ਵਾਰੀ ਵਾਰੀ <title> ਨੋਡ ਦੀ ਇਕੱਠੀ ਸੂਚੀ ਵਿੱਚ ਸਟੋਰ ਕਰੋ:

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

x ਵਿੱਚ <title> ਏਲੀਮੈਂਟ ਤੱਕ ਉਪਲਬਧ ਕਰਨ ਲਈ ਇਕੱਠੇ ਸਿਫ਼ਰ ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਉਪਲਬਧ ਕਰਨ ਵਾਲੇ ਇਕੱਠੇ ਲਿਖੇ ਹਨ।ਤੁਸੀਂ ਤੀਜੇ <title> ਨੂੰ ਦੇਖਣ ਲਈ ਲਿਖ ਸਕਦੇ ਹੋ:

y=x[2];

TIY

ਟਿੱਪਣੀ:ਸਿਫ਼ਰ ਤੋਂ ਛੇਡੋ

ਇਸ ਸਿਖਲਾਈ ਦੇ ਬਾਅਦ ਦੇ ਅਧਿਆਏ ਵਿੱਚ ਤੁਸੀਂ Node List ਬਾਰੇ ਜਾਣਕਾਰੀ ਮਿਲੇਗੀ。

DOM Node List Length

length ਅਤੀਤ ਨੋਡ ਸੂਚੀ ਦੀ ਲੰਬਾਈ (ਨੋਡਾਂ ਦੀ ਗਿਣਤੀ) ਨਿਰਧਾਰਿਤ ਕਰਦਾ ਹੈ。

ਤੁਸੀਂ length ਅਤੀਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨੋਡ ਸੂਚੀ ਨੂੰ ਲੱਗੇ ਹੋਣ ਸਕਦੇ ਹੋ:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

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

  1. ਵਰਤਣਾ loadXMLDoc() ਇਕ "books.xml" xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ
  2. ਸਾਰੇ <title> ਏਲੀਮੈਂਟ ਨੋਡ ਪ੍ਰਾਪਤ ਕਰੋ
  3. ਹਰ ਟਾਈਟਲ ਏਲੀਮੈਂਟ ਦੇ ਟੈਕਸਟ ਨੋਡ ਦੇ ਮੁੱਲ ਨੂੰ ਆਉਟਪੁਟ ਕਰੋ

TIY

Node Type

XML ਦਸਤਾਵੇਜ਼ ਦਾ documentElement ਅਤੀਤ ਹੈ ਬਿੰਦੂ ਹੈ

ਬਿੰਦੂ ਦੀ nodeName ਅਤੀਤ ਹੈ ਬਿੰਦੂ ਦਾ ਨਾਮ

ਬਿੰਦੂ ਦੀ nodeType ਅਤੀਤ ਹੈ ਬਿੰਦੂ ਦਾ ਟਾਈਪ

ਤੁਸੀਂ ਇਸ ਸਿਖਲਾਈ ਦੇ ਅਗਲੇ ਅਧਿਆਏ ਵਿੱਚ ਨੋਡ ਅਤੀਤਿਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਮਿਲੇਗੀ。

TIY

ਬਿੰਦੂ ਦੇਖੇ

ਹੇਠ ਲਿਖੇ ਕੋਡ ਰੂਟ ਬਿੰਦੂ ਦੇ ਉਪ ਬਿੰਦੂ ਨੂੰ ਲੱਗਦਾ ਹੈ ਜੋ ਏਲੀਮੈਂਟ ਹਨ:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  if (x[i].nodeType==1)
  {//Process only element nodes (type 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

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

  1. ਉਪਯੋਗ ਕਰਕੇ loadXMLDoc() ਇਕ "books.xml" xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ
  2. ਰੂਟ ਏਲੀਮੈਂਟ ਦੇ ਉਪ ਬਿੰਦੂ ਪ੍ਰਾਪਤ ਕਰੋ
  3. ਹਰ ਉਪ ਬਿੰਦੂ ਦਾ ਨੋਡ ਟਾਈਪ ਚੈਕ ਕਰੋ।ਜੇਕਰ ਨੋਡ ਟਾਈਪ "1" ਹੈ ਤਾਂ ਇਹ ਏਲੀਮੈਂਟ ਨੋਡ ਹੈ
  4. ਜੇਕਰ ਇਹ ਏਲੀਮੈਂਟ ਨੋਡ ਹੈ ਤਾਂ ਨੋਡ ਦਾ ਨਾਮ ਪ੍ਰਤੀਯੋਗ ਕਰੋ

TIY

ਨੋਡ ਸਬੰਧ ਦੀ ਵਰਤੋਂ ਨਾਲ ਨੈਵੀਗੇਸ਼ਨ ਕਰਨਾ

ਨੋਡ ਸਬੰਧ ਦੀ ਵਰਤੋਂ ਨਾਲ ਨੋਡ ਟ੍ਰੀ ਵਿੱਚ ਨੈਵੀਗੇਸ਼ਨ ਕਰਨਾ

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Process only element nodes (type 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. ਉਪਯੋਗ ਕਰਕੇ loadXMLDoc() ਇਕ "books.xml" xmlDoc ਵਿੱਚ ਲੋਡ ਕਰੋ
  2. ਪਹਿਲੇ book ਏਲੀਮੈਂਟ ਦੇ ਉਪ ਨੋਡ ਪ੍ਰਾਪਤ ਕਰੋ
  3. ਇੱਕ "y" ਪਰਿਵਾਰ ਵਾਲੇ ਪਹਿਲੇ book ਏਲੀਮੈਂਟ ਦੇ ਪਹਿਲੇ ਉਪ ਨੋਡ ਨੂੰ ਸੈਟ ਕਰੋ
  4. ਹਰੇਕ ਉਪ ਨੋਡ ਦੇ ਨੋਡ ਪ੍ਰਕਾਰ ਨੂੰ ਚੇਕ ਕਰੋ, ਜੇਕਰ ਨੋਡ ਪ੍ਰਕਾਰ "1" ਹੈ ਤਾਂ ਇਹ ਏਲੀਮੈਂਟ ਨੋਡ ਹੈ
  5. ਜੇਕਰ ਇਹ ਏਲੀਮੈਂਟ ਨੋਡ ਹੈ ਤਾਂ ਨੋਡ ਦਾ ਨਾਮ ਪ੍ਰਤੀਯੋਗ ਕਰੋ
  6. ਇੱਕ "y" ਪਰਿਵਾਰ ਵਾਲੇ ਅਗਲੇ ਸਮਾਨ ਨੋਡ ਨੂੰ ਸੈਟ ਕਰੋ ਅਤੇ ਫਿਰ ਸਰਕਲ ਚਲਾਓ

TIY