我有只有一些节点的 XML 文件。无论如何,节点有很多属性。我正在查询包含特定关键字的属性。
String expression = "/posts/row[@PostTypeId='1' and @*[contains(.,'Security')]]";
这工作正常,但只能找到与大写“S”的完全匹配。我想让用户提供关键字,而他们是否只使用小写字母不在我的手中。我想做的是使用
//posts/row[translate(@*, ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’, ‘abcdefghijklmnopqrstuvwxyz’)]
使 XML 端的所有内容以及关键字都小写,并将两种尝试组合成一个表达式。
这是我的尝试,但不起作用
String expression = "/posts/row[@*[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + keyword + "')]]";
有人可以帮我吗?我的尝试完全错了吗?
提前致谢, 博多
看来我可以同时用以下方法解决这个问题
String expression = "/posts/row[@PostTypeId='1' and @*[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + keyword + "')]]";
我不知道是什么使它现在起作用,所以任何人都可以对此有所了解吗?