у меня есть что-то вроде этого:Выберите конкретный узел, который имеет дочерний узел с определенным значением
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Row>
<Cell>some value</Cell>
<Cell>some value</Cell>
... continues with around 800 other Cells
</Row>
...continues with around 2000 other Rows
ПЕРВАЯ ПРОБЛЕМА: С помощью XPath для выбора данных XML, я хочу, чтобы выбрать строку, которая имеет ячейка с определенным значением. как я могу это достичь? Каков синтаксис xpath для этого?
ВТОРАЯ ПРОБЛЕМА: Моего XML-данные составляют около 1.6х строк коды и выбора данных из него занимает очень много времени, кроме того факта, что он весит около 80 МБ! Как я могу сделать этот процесс более эффективным и повысить производительность? р я использую ниже код для извлечения данных XML:
function loadXMLDoc(dname)
{
xhttp=new XMLHttpRequest();
xhttp.open("GET", dname ,false);
xhttp.send("");
return xhttp;
}
var x=loadXMLDoc("data/data.xml");
var xml=x.responseXML;
path="some path";
if (document.implementation && document.implementation.createDocument)
{
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();
while (result)
{
document.write(result.childNodes[0].nodeValue);
document.write("<br>");
result=nodes.iterateNext();
}
}
xpath '//Cell[.='some value ']' должен извлекать узлы с ячейками, имеющими текстовое содержимое, как 'some value' – SomeDude
@svasa, но это только выбирает ячейку со значением. Я хочу выбрать своего родителя! Есть ли способ сделать это ? –
Да. '//Cell[.='some value ']/..' даст родительский узел 'Row' – SomeDude