gpt4 book ai didi

带有 XMLUnit 2 和默认命名空间的 Java XPath

转载 作者:行者123 更新时间:2023-11-30 10:47:53 24 4
gpt4 key购买 nike

我在使用 XMLUnit 2.0.0 和默认命名空间编写 XPath 时遇到了问题。这是我的示例 xml:

<a xmlns="uri:foo">
<b>value</b>
</a>

我无法使用以下 XMLUnit XPath 代码访问任何元素:

XPathEngine engine = new JAXPXPathEngine();
engine.setNamespaceContext(new HashMap<String, String>(1) {{
put(DEFAULT_NS_PREFIX, "uri:foo");
}});
assertEquals("value", engine.evaluate("/a/b",
Input.fromString("<a xmlns=\"uri:foo\"><b>value</b></a>").build()));

如何使用默认命名空间使用 XPathEngine/XPath 访问元素?

最佳答案

我找到的答案是在 XPath 中的元素前加上一个“:”。

"/:a/:b"

这解决了我的问题。总之,我做了以下事情:

XPathEngine engine = new JAXPXPathEngine();
engine.setNamespaceContext(new HashMap<String, String>(1) {{
put(DEFAULT_NS_PREFIX, "uri:foo");
}});
assertEquals("value", engine.evaluate("/:a/:b",
Input.fromString("<a xmlns=\"uri:foo\"><b>value</b></a>").build()));

关于带有 XMLUnit 2 和默认命名空间的 Java XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36022249/

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