【发布时间】:2021-12-31 23:08:33
【问题描述】:
我似乎无法在此 XML 片段上使用 JSDOM 和 XPath 语法获取 XML 属性。
<PARAGRAPH>
This is a text, about something, that happened on
<DATE ISO="20131117">17.November 2013</DATE>
. It is a very important date.
</PARAGRAPH>
据我了解,PARAGRAPH/DATE/@ISO 是该属性的有效 XPath 语法,并且在 Xpather 等网站上运行良好
最小的工作示例:
import { JSDOM } from "jsdom";
const xml = `
<PARAGRAPH>
This is a text, about something, that happened on
<DATE ISO="20131117">17.November 2013</DATE>
. It is a very important date.
</PARAGRAPH>
`;
const dom = new JSDOM(xml, {contentType: "application/xml"});
const doc = dom.window.document;
// 2: XPathResult.STRING_TYPE
const date = doc.evaluate("PARAGRAPH/DATE/@ISO", doc, null, 2, null).stringValue;
console.log(date);
预期结果: "20131117"
实际结果: ""
其他无效的方法
PARAGRAPH//DATE/@ISO,
string(PARAGRAPH/DATE/@ISO), XPath.FIRST_ORDERED_NODE_TYPE
评估结果似乎是空的。
【问题讨论】:
标签: javascript node.js xml xpath jsdom