如何在数组中存储值(Java)

时间:2018-10-09 10:54:38

标签: java arrays for-loop

我有一个表(right-to-left),它包含用于xml的1列(<bdi>)。

因此,如果REQUESTS在此表中有一行,则应获取相应的xml。

如果检索到xml,则需要获取带有标签XML_DATA的所有值。

这是我到目前为止所拥有的:

ID=123

现在,如果有多个<Mobile>0918xxxx</Mobile>

我需要使用for循环将其存储在数组中。

如何在数组中存储strMob的多个值?

存储所有可能的strMob之后,我打算将值分配给其他地方,例如:for (int i = 0; i < RqeuestsDBViewData.length; i++) //GETS ROWS FROM TABLE REQUESTS { xmlDetails = test.getDetailsFromXML(mCustUtils, RequestDBViewData[i]); //GETS XML FROM XML_DATA String strXmlDetails; String strMob; if (!AppUtils.isEmpty(xmlDetails)) //IF IT HAS ROW, THEN GET RECORD FROM <MOBILE></MOBILE> TAG { strXmlDetails = xmlDetails.toString(); //ENTIRE XML strMob = StringUtils.substringBetween(strXmlDetails, "<Mobile>", "</Mobile>"); //GETS MOBILE VALUE }

有关如何执行此操作的任何建议?

1 个答案:

答案 0 :(得分:0)

使用适当的XML工具读取XML。

变体1

使用Jackson来parse your XML to a prepared Java object。这也适用于数组。

变体2

将XML读取到DOM对象

public static Element getDocument(String xmlString) {
    return getDocument(new ByteArrayInputStream(xmlString.getBytes()));
}

public static Element getDocument(InputStream inputStream) {
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = factory.newDocumentBuilder();
        Document doc = docBuilder.parse(new BufferedInputStream(inputStream));
        Element root = doc.getDocumentElement();
        root.normalize();
        return root;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

以XPATH为目标,您可以提取<Mobile>元素。查看此答案:Extract content between XML tags