从存储在 url 中的 XML 文件中获取数组

Posted

技术标签:

【中文标题】从存储在 url 中的 XML 文件中获取数组【英文标题】:Get Array from XML file stored in url 【发布时间】:2019-04-20 12:04:37 【问题描述】:

我正在尝试获取我存储的所有数组:https://s3.eu-west-2.amazonaws.com/tekstpieprz/strings.xml

我想将它们用于我的文本视图。我添加了 Unirest,但无法理解 JSON。我试过玩类似的东西:

HttpResponse<JsonNode> request = (HttpResponse<JsonNode>) Unirest.get("https://s3.eu-west-2.amazonaws.com/tekstpieprz/strings.xml")
            .getBody("docukrz");
    JSONObject myObj = request.getBody().getObject();
    final JSONArray results  = myObj.getJSONArray(String docukrz);

那么我可以使用数组:

    final String[] docukrz = res.getStringArray(R.array.docukrz);

而是使用

资源

我想使用我在线存储的数组。 我不完全理解 JSON 是如何工作的,我 6 周前才开始学习 JAVA。任何帮助将不胜感激。

【问题讨论】:

响应是 XML,而不是 JSON。您需要使用 XML 解析器。 但是怎么做呢?老实说,无论我问什么,我都找不到简单的答案。我在堆栈和其他论坛上进行了很多搜索,每个人都在提出其他建议。有人建议我使用 Unirest、改造、xml 解析。我只是在学习这些东西,老实说,我不知道从哪里学习。我还不如将资源文件保存在本地,但我想我会更进一步,把它放到网上,这样我就可以在没有新应用版本的情况下随时更改它。希望能提供更多细节,或者至少指出我可以从哪里开始或从哪里学习。谢谢! 在线资源是个坏主意。如果设备离线怎么办? 那就不行了,就这么简单。我会经常更新文件,而且我已经花了很多时间在上面,我想知道将来如何做。抱歉,您的评论无济于事。 【参考方案1】:

您可以在 How can I parse xml from url in android? 找到 XML prase 示例。 根据该答案,您的代码应如下所示

   URL url = new URL("https://s3.eu-west-2.amazonaws.com/tekstpieprz/strings.xml");
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
     DocumentBuilder db = dbf.newDocumentBuilder();
     Document doc = db.parse(new InputSource(url.openStream()));
     doc.getDocumentElement().normalize();

     NodeList nodeList = doc.getElementsByTagName("docukrz");
     ArrayList resourceList = new ArrayList();
      for (int i = 0; i < nodeList.getLength(); i++) 

          Node node = nodeList.item(i);
          resourceList.add(node);
 

【讨论】:

如果另一个问题有相同的答案,你应该标记为重复,而不是复制答案。

以上是关于从存储在 url 中的 XML 文件中获取数组的主要内容,如果未能解决你的问题,请参考以下文章

java中怎样在一个集合中随机取一个数?

java从list中取数,取前三行

如何从 Kotlin 中的服务器正确获取 XML

python怎么从一堆数据中取数

如何从 arrays.xml 文件中获取字符串数组

如何从存储在我的 PC 上的文件中获取 XML 数据并使用 javascript 填充 HTML 表格?