我正在尝试使用 saxon JS 来评估一些 xPaths
我正在运行以下代码
const sourceCode= " ... " //a string representing the code source of https://www.imdb.com/chart/boxoffice
const doc = new DOMParser({errorHandler: () => {} }).parseFromString(sourceCode, 'text/html')
try {
const res = saxon.XPath.evaluate(selectors[0].path, doc, { xpathDefaultNamespace : 'http://www.w3.org/1999/xhtml' })
console.log("saxon res", res);
} catch(e) {
console.log("saxon e", e);
}
引发以下错误
saxon e RangeError: Maximum call stack size exceeded
at Hb.Cb (/application/node_modules/saxon-js/SaxonJS2N.js:3904:409)
at new Hb (/application/node_modules/saxon-js/SaxonJS2N.js:3905:286)
at Object.fromString (/application/node_modules/saxon-js/SaxonJS2N.js:3948:119)
at H (/application/node_modules/saxon-js/SaxonJS2N.js:4377:39)
at S (/application/node_modules/saxon-js/SaxonJS2N.js:4378:208)
at H (/application/node_modules/saxon-js/SaxonJS2N.js:4378:500)
at /application/node_modules/saxon-js/SaxonJS2N.js:4379:103
at Array.forEach (<anonymous>)
at R (/application/node_modules/saxon-js/SaxonJS2N.js:4379:79)
at Y (/application/node_modules/saxon-js/SaxonJS2N.js:4379:196)
at H (/application/node_modules/saxon-js/SaxonJS2N.js:4379:28)
etc...
我尝试过的任何网页都出现同样的错误。如何解析源代码并使用 saxon-js 评估页面
注意:我对使用 xpath 3.0 的替代方案持开放态度 注意2:上面的代码适用于 npm xpath 但它使用 xpath 1