gpt4 book ai didi

java - 如何使用 Java 设计模式对一些 XPath 函数进行编程

转载 作者:行者123 更新时间:2023-12-01 15:55:24 26 4
gpt4 key购买 nike

我需要您的帮助和经验来使用设计模式实现最好的 Java 代码。我必须编写一些自定义 XPath 函数,它们可以:

  1. 加载 DOM 文档(我可以使用模拟对象);
  2. 检查用户 XPath 表达式的有效性;
  3. 查找并返回满足用户表达式的 DOM 节点。

我必须仅评估可以包含路径表达式“..”和嵌入在方括号中的关于属性或叶节点的谓词的绝对表达式 (/... ),例如:

/com/university/student/../exam
/com/university/exam[@tt = 'poo']/vote
/com/university/student/number[. = '1234']

我将在第一步使用复合模式,第二步使用责任链,第三步使用访问者,但我不确定这是否是最好的方法。责任链对于检查有效性有用吗?欢迎提出所有建议,提前感谢您提供的任何帮助。

最佳答案

是不是有点……过于复杂?

  1. 为某些 XML 输入创建 DOM 对象
  2. 编译用户输入 - 如果无效,XPath 将发出警告 (XPathExpressionException)
  3. 使用 DOM 对象计算表达式

示例:

// #1 load document
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);

// #2 - validate expression
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = null;
try {
XPathExpression expr = xpath.compile(getExpression());
} catch (XPathExpressionException e) {
// ... handle & return <- invalid expression
}

// #3 evaluate expression
String result = expr.evaluate(doc);

关于java - 如何使用 Java 设计模式对一些 XPath 函数进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com