亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字符串中從 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 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號