为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中从 XML 中提取值

从字符串中从 XML 中提取值

九州编程 2022-09-01 17:39:54
我做了一些代码,但它们不起作用。我还需要验证标头:消息是否存在String xml = "<header:HostError><header:message>    <header:messageCode>321</header:messageCode>    <header:message>test</header:message></header:message><header:message>    <header:messageCode>123</header:messageCode>    <header:message>test</header:message></header:message></header:HostError>"如何获取第一条消息代码和消息?    private void extractErrorsFromResponse(SOAPFaultDetail faultResponse) {    for (Iterator itr = faultResponse.getAllDetailEntries(); itr.hasNext(); ) {        Object element = itr.next();        if (element instanceof OMElement) {                         Object code = ((OMElement) element).getFirstChildWithName(new QName("message")).getFirstChildWithName(new QName("messageCode"));            Object message = ((OMElement) element).getFirstChildWithName(new QName("message")).getFirstChildWithName(new QName("message"));            faultResponse.addDetailEntry(((OMElement) element).cloneOMElement());        }    }}爪哇岛
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

一个快速的解决方案是这样的。


String xml = "<header:HostError>" +

     "<header:message>\n" +

     "<header:messageCode>321</header:messageCode>\n" +

     "<header:message>test</header:message>\n" +

     "</header:message>\n" +

     "<header:message>\n" +

     "<header:messageCode>123</header:messageCode>\n" +

     "<header:message>test</header:message>\n" +

     "</header:message>\n" +

     "</header:HostError>";


DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

Document doc = docBuilder.parse(new InputSource(new StringReader(xml)));


NodeList list = doc.getElementsByTagName("header:messageCode");


System.out.println("First messageCode : " + list.item(0).getFirstChild().getNodeValue());


NodeList list_ = doc.getElementsByTagName("header:message");

System.out.println("First message : " + list_.item(1).getFirstChild().getNodeValue());

它打印,


First messageCode : 321

First message : test

基于此,您需要找到一种更通用的方法。


查看完整回答
反对 回复 2022-09-01
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号