gpt4 book ai didi

java - java中xpath表达式动态赋值

转载 作者:行者123 更新时间:2023-12-02 06:18:40 25 4
gpt4 key购买 nike

我正在尝试使用java从WSDL文件动态创建gui。我需要检索与每个操作相关的消息。为此,我需要动态分配 XPath 表达式值。我分配的表达式如下

  String expression="/definitions/portType/operation[@name="+oper[i]+"]/*";
NodeList msglist= (NodeList)xpath.expressionxpath.compile(expression1).evaluate(doc,XPathConstants.NODESET);
System.out.println("The Number of messages are"+msglist.getLength());

这里 oper[i] 是包含操作名称列表的数组。但当我打印 msglist 中的节点数时它不起作用,它总是显示 0。我的 WSDL 文件包含 2 个操作元素的子元素。任何人都可以帮助我吗?提前致谢

最佳答案

从评论来看,模式是:

/definitions/portType/opeation[@name=sayHello]/*

匹配字符串周围的引号丢失。应该是:

/definitions/portType/opeation[@name="sayHello"]/*

所以你的模式应该是:

String expression="/definitions/portType/operation[@name=\""+oper[i]+"\"]/*";

使用 MessageFormatString.format 可能会更清晰:

String expression=String.format("/definitions/portType/operation[@name=\"%s\"]/*", oper[i]);

关于java - java中xpath表达式动态赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21219544/

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