Tho*_*hom 5 java spring-ws jdom jdom-2
以下是从Spring-ws手册中摘录的代码:
public class HolidayEndpoint {
private static final String NAMESPACE_URI = "http://mycompany.com/hr/schemas";
private XPath startDateExpression;
private XPath endDateExpression;
private XPath nameExpression;
private HumanResourceService humanResourceService;
@Autowired
public HolidayEndpoint(HumanResourceService humanResourceService) (2)
throws JDOMException {
this.humanResourceService = humanResourceService;
Namespace namespace = Namespace.getNamespace("hr", NAMESPACE_URI);
startDateExpression = XPath.newInstance("//hr:StartDate");
startDateExpression.addNamespace(namespace);
endDateExpression = XPath.newInstance("//hr:EndDate");
endDateExpression.addNamespace(namespace);
nameExpression = XPath.newInstance("concat(//hr:FirstName,' ',//hr:LastName)");
nameExpression.addNamespace(namespace);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这似乎是使用JDOM 1.0,我想使用JDOM 2.0.
如何将此代码从JDOM 1.0转换为JDOM 2.0?为什么Spring没有更新他们的示例代码?
谢谢!
JDOM2仍然相对较新....但是,JDOM 1.x中的XPath工厂特别糟糕...... JDOM 2.x有一个新的api.旧API用于向后兼容/迁移.在这里看一下这个文档的原因,以及JDOM 2.x中的新API.
在您的情况下,您可能希望用以下代码替换代码:
XPathExpression<Element> startDateExpression =
XPathFactory.instance().compile("//hr:StartDate", Filters.element(), null, namespace);
List<Element> startdates = startDateExpression.evaluate(mydocument);
Run Code Online (Sandbox Code Playgroud)
罗尔夫
| 归档时间: |
|
| 查看次数: |
6663 次 |
| 最近记录: |