从存储在 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 文件中获取数组的主要内容,如果未能解决你的问题,请参考以下文章