syphonx-core
Version:
SyphonX is a template-driven solution for extracting data from HTML in a highly efficient way. It combines the power of jQuery, Regular Expressions, and Javascript into a declarative template-driven format that extracts and reshapes HTML data into JSON.
50 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateXPath = void 0;
function evaluateXPath(xpath, nodes) {
var result = {
nodes: [],
value: []
};
for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
var node = nodes_1[_i];
var eval_result = document.evaluate(xpath, node, null, XPathResult.ANY_TYPE, null);
if (eval_result.resultType === XPathResult.STRING_TYPE) {
result.nodes.push(node);
result.value.push(eval_result.stringValue);
}
else if (eval_result.resultType === XPathResult.NUMBER_TYPE) {
result.nodes.push(node);
result.value.push(eval_result.numberValue);
}
else if (eval_result.resultType === XPathResult.BOOLEAN_TYPE) {
result.nodes.push(node);
result.value.push(eval_result.booleanValue);
}
else if (eval_result.resultType === XPathResult.UNORDERED_NODE_ITERATOR_TYPE) {
var node_1 = eval_result.iterateNext();
while (node_1) {
result.nodes.push(node_1);
result.value.push(node_1.textContent);
node_1 = eval_result.iterateNext();
}
return result;
}
else if (eval_result.resultType === XPathResult.ORDERED_NODE_ITERATOR_TYPE) {
var result_1 = {
nodes: [],
value: []
};
var node_2 = eval_result.iterateNext();
while (node_2) {
result_1.nodes.push(node_2);
result_1.value.push(node_2.textContent || null);
node_2 = eval_result.iterateNext();
}
return result_1;
}
}
return result;
}
exports.evaluateXPath = evaluateXPath;
//# sourceMappingURL=xpath.js.map