gpt4 book ai didi

java - 如何为 Axiom XPath 设置变量上下文

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:06 26 4
gpt4 key购买 nike

我想验证我的 xpath 参数

这是我的 xml

<parent>
<a>
<c>name1</c>
</a>
<b>name2</b>
</parent>

以下是我的java代码

    String xmlPayload="<parent><a><c>name1</c></a><b>name2</b></parent>";
OMElement xmlOMOBject= AXIOMUtil.stringToOM(xmlPayload);
String key1="//a";
String key2="/c";
SimpleVariableContext svc=new SimpleVariableContext();
svc.setVariableValue("part1",key1);
svc.setVariableValue("part2",key2);

AXIOMXPath axiomxPath = new AXIOMXPath("$part1$part2");
axiomxPath.setVariableContext(svc);
System.out.println(axiomxPath.selectSingleNode(xmlOMOBject));

但是上面的代码给了我一个错误。

Exception in thread "main" org.jaxen.XPathSyntaxException: Unexpected '$'

如何设置上下文变量并正确评估 axiom xpath。

最佳答案

$part1$part2 不是有效的 XPath 表达式。 concat($part1, $part2) 是有效的,但它只会计算字符串 //a/c 而不会将 //a/c 计算为 XPath 表达式。我猜你想要类似 evaluate function in EXSLT 的东西(并使用 dyn:evaluate(concat($part1, $part2))),但我不确定 Jaxen 支持此函数,这仍然与构造 AXIOMXPath 具有相同的效果,如下所示:

AXIOMXPath axiomxPath = new AXIOMXPath(key1 + key2);

关于java - 如何为 Axiom XPath 设置变量上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509680/

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