Получить значение атрибута дочерних узлов, используя анализатор DOM в Javascript - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно получить значение "templatedata" (RK1S), используя JavaScript.

<additional_info>
<Param name="srno" value="B4745" />
<Param name="Device" value="Opn" />
<Param name="Support" value="0" />
<Param name="templatedata" value="Rk1S"/>
</additional_info>

Я пробовал использовать следующий скрипт, но получаю undefined.

var text=" <additional_info>
    <Param name="srno" value="B4745" />
    <Param name="Device" value="Opn" />
    <Param name="Support" value="0" />
    <Param name="templatedata" value="Rk1S"/>
    </additional_info>";

if (window.DOMParser) {
  parser = new DOMParser();
  xmlDoc = parser.parseFromString(text,"text/xml");
} else {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(text); 
} 


var txt;
var x = xmlDoc.getElementsByTagName("additional_info");
alert(x[0].value);
var y=x.getAttribute("Param name")
txt = y.nodeValue;
alert(txt);

1 Ответ

0 голосов
/ 14 сентября 2018

Все, что вам нужно, это querySelector для нужного элемента, который можно выбрать с помощью Param[name="templatedata"].Используйте шаблонный литерал вместо двойных кавычек для определения строки в нескольких строках и используйте getAttribute('value') вместо .value, потому что .value работает только для элементов, подобных вводу:

var text = `<additional_info>
<Param name="srno" value="B4745" />
<Param name="Device" value="Opn" />
<Param name="Support" value="0" />
<Param name="templatedata" value="Rk1S"/>
</additional_info>`;

let parser;
let xmlDoc;
if (window.DOMParser) {
  parser = new DOMParser();
  xmlDoc = parser.parseFromString(text, "text/xml");
} else {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(text);
}
const param = xmlDoc.querySelector('Param[name="templatedata"]');
console.log(param.getAttribute('value'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...