ایکس ایم ال ڈوم نود کا پارسی

大多数浏览器都内建了供读取和操作 XML 的 XML 解析器。

解析器把 XML 转换为 JavaScript 可存取的对象。

实例

CodeW3C.com 提供的实例独立于浏览器和平台。这些实例可在所有现代浏览器中运行。

加载并解析 XML 文件
加载并解析 XML 字符串

解析 XML

所有现代浏览器都内建了用于读取和操作 XML 的 XML 解析器。

解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。

微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历 XML 树、访问、插入及删除节点的函数。

ਇਸ ਟ੍ਰੇਨਿੰਗ ਵਿੱਚ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਦੱਸਾਂਗੇ ਕਿ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਆਈਈ ਅਤੇ ਹੋਰ ਬਰਾਉਜ਼ਰਾਂ ਵਿੱਚ ਚਲੇ ਵਾਲਾ ਸਕ੍ਰਿਪਟ

ਮਾਈਕਰੋਸਾਫਟ ਦੇ XML ਪਾਰਸਰ ਰਾਹੀਂ XML ਲੋਡ ਕਰੋ

ਮਾਈਕਰੋਸਾਫਟ ਦਾ XML ਪਾਰਸਰ ਇੰਟਰਨੈੱਟ ਈਸਰੋਅਰ 5 ਅਤੇ ਉੱਚ ਵਰਜਨਾਂ ਵਿੱਚ ਸ਼ਾਮਿਲ ਹੈ。

ਫਾਰਫੈਕਸ ਅਤੇ ਹੋਰ ਬਰਾਊਜ਼ਰਾਂ ਵਿੱਚ XML ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮbooks.xmlਹੇਠ ਲਿਖੇ JavaScript ਸਕੈਪਟ ਵਾਲੇ XML ਡੋਕੂਮੈਂਟ ("

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

xmlDoc=parser.parseFromString(txt,"text/xml");

  • ਪਹਿਲੀ ਲਾਈਨ ਵਿੱਚ ਖਾਲੀ ਮਾਈਕਰੋਸਾਫਟ XML ਦਾਖਲ ਦਸਤਾਵੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ
  • ਪਹਿਲੀ ਲਾਈਨ ਇੱਕ ਖਾਲੀ XML ਡੋਕੂਮੈਂਟ ਵਸਤੂ ਬਣਾਉਂਦੀ ਹੈ
  • ਦੂਜੀ ਲਾਈਨ ਅਸਿਨਕਰੋਨਸ ਲੋਡ ਨੂੰ ਬੰਦ ਕਰਦੀ ਹੈ, ਤਾਕਿ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਦੇ ਦੋਕੂਮੈਂਟ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਸਕ੍ਰਿਪਟ ਨਾ ਚਲੇ

ਤੀਜੀ ਲਾਈਨ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਨੂੰ "books.xml" ਨਾਮ ਦਾ ਡੋਕੂਮੈਂਟ ਲੋਡ ਕਰਦੀ ਹੈ

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

ਨੋਟ:Internet Explorer ਵਿੱਚ ਮੰਥਨ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ XML (ਟੈਕਸਟ) ਲੋਡ ਕਰੇ, ਅਤੇ load() ਫਾਈਲ ਲੋਡ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ。

在 Firefox 及其他浏览器中的 XML 解析器

ਫਾਰਫੈਕਸ ਅਤੇ ਹੋਰ ਬਰਾਊਜ਼ਰਾਂ ਵਿੱਚ XML ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮbooks.xmlਹੇਠ ਲਿਖੇ JavaScript ਸਕੈਪਟ ਵਾਲੇ XML ਡੋਕੂਮੈਂਟ ("

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

xmlDoc=parser.parseFromString(txt,"text/xml");

  • ) ਲੋਡ ਕਰੇ ਵਾਲੇ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ:
  • ਪਹਿਲੀ ਲਾਈਨ ਇੱਕ ਖਾਲੀ XML ਡੋਕੂਮੈਂਟ ਵਸਤੂ ਬਣਾਉਂਦੀ ਹੈ
  • ਦੂਜੀ ਲਾਈਨ ਅਸਿਨਕਰੋਨਸ ਲੋਡ ਨੂੰ ਬੰਦ ਕਰਦੀ ਹੈ, ਤਾਕਿ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਦੇ ਦੋਕੂਮੈਂਟ ਪੂਰੀ ਤਰ੍ਹਾਂ ਲੋਡ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਸਕ੍ਰਿਪਟ ਨਾ ਚਲੇ

ਤੀਜੀ ਲਾਈਨ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਨੂੰ "books.xml" ਨਾਮ ਦਾ ਡੋਕੂਮੈਂਟ ਲੋਡ ਕਰਦੀ ਹੈ

parser=new DOMParser();
ਹੇਠ ਲਿਖੇ JavaScript ਸਕੈਪਟ ਵਾਲੇ txt ਨਾਮ ਦਾ ਸਟਰਿੰਗ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਲੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

xmlDoc=parser.parseFromString(txt,"text/xml");

  • ਕੋਡ ਵਿਸਥਾਰਣ:
  • ਪਹਿਲੀ ਲਾਈਨ ਇੱਕ ਖਾਲੀ XML ਡੋਕੂਮੈਂਟ ਵਸਤੂ ਬਣਾਉਂਦੀ ਹੈ

ਨੋਟ:ਦੂਜੀ ਲਾਈਨ ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ ਨੂੰ "txt" ਨਾਮ ਦਾ ਸਟਰਿੰਗ ਲੋਡ ਕਰਦੀ ਹੈ Internet Explorer ਵਿੱਚ ਮੱਥੋਦ ਨਾਲ XML ਸਟਰਿੰਗ ਨੂੰ ਪਾਰਸਿੰਗ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਦਕਿ ਹੋਰ ਬਰਾਊਜ਼ਰ ਲੋਡXML() ਮੱਥੋਦ ਨੂੰ ਵਰਤਦੇ ਹਨ DOMParser ਵਸਤੂ

ਪਾਰਸਿੰਗ XML ਡੋਕੂਮੈਂਟ - ਇੱਕ ਕਰਾਸ ਬਰਾਊਜ਼ਰ ਇੰਸਟੈਂਸੇ

ਇਹ ਉਦਾਹਰਣ XML ਡੋਕੂਮੈਂਟ ("books.xml) ਲੋਡ ਕਰੇ ਵਾਲੇ XML ਪਾਰਸਿੰਗ ਪ੍ਰੋਗਰਾਮ:

<html>
<body>
<script type="text/javascript">
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load("books.xml");
  document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>

TIY

ਅਪਰਾਧੀ: ਕਰਾਸ ਡੋਮ ਪਰਿਵਾਹਨ

ਸੁਰੱਖਿਆ ਦੇ ਕਾਰਨ, ਆਧੁਨਿਕ ਬਰਾਊਜ਼ਰ ਕਰਾਸ ਡੋਮ ਪਰਿਵਾਹਨ ਨੂੰ ਨਹੀਂ ਅਪਣਾਉਂਦੇ ਹਨ。

ਇਹ ਮਤਲਬ ਹੈ ਕਿ ਵੈੱਬਸਾਈਟ ਅਤੇ ਉਹ XML ਫਾਈਲ ਜੋ ਉਹ ਲੋਡ ਕਰਦੀ ਹੈ, ਦੋਵੇਂ ਇੱਕ ਹੀ ਸਰਵਰ 'ਤੇ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ。

CodeW3C.com ਦੇ ਉਦਾਹਰਣ ਵਾਲੀ XML ਫਾਈਲ CodeW3C.com ਦੇ ਡੋਮ 'ਤੇ ਹੈ。

ਅਗਰ ਤੁਸੀਂ ਉੱਪਰੋਕਤ ਉਦਾਹਰਣ ਨੂੰ ਆਪਣੀ ਵੈੱਬਸਾਈਟ ਵਿੱਚ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ XML ਫਾਈਲ ਆਪਣੇ ਸਰਵਰ 'ਤੇ ਰੱਖਣਾ ਹੋਵੇਗਾ। ਨਹੀਂ ਤਾਂ xmlDoc.load() ਇਕ ਤਰਜ਼ੀਬ "Access is denied" ਪੈਦਾ ਕਰੇਗਾ。

ਪਾਰਸਿੰਗ XML ਸਟਰਿੰਗ - ਇੱਕ ਕਰਾਸ ਬਰਾਊਜ਼ਰ ਇੰਸਟੈਂਸੇ

ਇਹ ਕੋਡ ਇੱਕ XML ਸਟਰਿੰਗ ਨੂੰ ਲੋਡ ਕਰਦਾ ਹੈ ਅਤੇ ਪਾਰਸਿੰਗ ਕਰਦਾ ਹੈ:

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

ਨੋਟ:Internet Explorer ਵਰਤੋਂ loadXML() ਮੈਥਡ ਨਾਲ XML ਸਟ੍ਰਿੰਗ ਨੂੰ ਪਾਰਸਿੰਗ ਕਰਦਾ ਹੈ, ਜਦਕਿ ਹੋਰ ਬਰਾਉਜ਼ਰ DOMParser ਪ੍ਰੋਬਜੈਕਟ