【问题标题】:How to store values in an array (Java)如何将值存储在数组中(Java)
【发布时间】:2018-10-09 10:54:38
【问题描述】:

我有一个表 (REQUESTS),它包含 1 列 (XML_DATA) 用于 xmls。

所以如果ID=123在这个表中有一行,应该得到对应的xml。

如果检索到 xml,我需要获取带有标签 <Mobile>0918xxxx</Mobile> 的所有值。

这是我目前所拥有的:

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 个&lt;Mobile&gt;&lt;/Mobile&gt;

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

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

在存储所有可能的 strMob 之后,我打算将这些值分配到其他地方,例如:personalInfo[j].setMobile(array/list[j]);

关于如何做到这一点的任何建议?

【问题讨论】:

  • 由于您不知道您将拥有多少个元素,因此最好使用列表,而不是数组。如果需要,您可以稍后使用 toArray() 方法将该列表转换为数组。
  • 嗨@YoavGur,你能告诉我怎么做吗?因为我也打算用这个数组/列表来做类似personalInfo[j].setMobile(array/list[j]);
  • 这是非常基本的 java 东西。这里有 2 个链接,希望对您有所帮助:1. codejava.net/java-core/collections/…,2. tutorials.jenkov.com/java-collections/list.html

标签: java arrays for-loop


【解决方案1】:

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

变体 1

使用杰克逊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,您可以提取 &lt;Mobile&gt; 元素。看到这个答案:Extract content between XML tags

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 2016-10-28
    • 1970-01-01
    • 2018-09-24
    • 2018-02-21
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多