UNPKG

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.

45 lines 1.64 kB
export function evaluateXPath(xpath, nodes) { const result = { nodes: [], value: [] }; for (const node of nodes) { const 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) { let node = eval_result.iterateNext(); while (node) { result.nodes.push(node); result.value.push(node.textContent); node = eval_result.iterateNext(); } return result; } else if (eval_result.resultType === XPathResult.ORDERED_NODE_ITERATOR_TYPE) { const result = { nodes: [], value: [] }; let node = eval_result.iterateNext(); while (node) { result.nodes.push(node); result.value.push(node.textContent || null); node = eval_result.iterateNext(); } return result; } } return result; } //# sourceMappingURL=xpath.js.map