gpt4 book ai didi

java - 安卓 : Reading XML data from URL using JAVA

转载 作者:行者123 更新时间:2023-12-02 06:44:14 24 4
gpt4 key购买 nike

您好,我正在尝试从 URL 读取 XML 数据

XML 结构如下:

<specialoffers>
<categories>...</categories>
<categories>...</categories>
<categories>...</categories>
<categories>...</categories>
<categories>...</categories>
<categories>...</categories>

XML:

<specialoffers>
<categories>
<category>
<![CDATA[ 0% Installment Payment Plan Offers ]]>
</category>
<merchants>
<merchantname>
<![CDATA[ EmaxIPP ]]>
</merchantname>
<merchantbigimage>
<![CDATA[
http://www.XXX.com/Images/Emax%20New%20-%20190x73-1_tcm20-48180.jpg]]>
</merchantbigimage>

<merchantsmallimage>
<![CDATA[
http://www.XXX.com/Images/Emax%20New%20-%20104x75-1_tcm20-48179.jpg
]]>
</merchantsmallimage>

<merchantmobileimage>
<![CDATA[ http://www.XXX.com ]]>
</merchantmobileimage>
<mobilehighlight>
<![CDATA[
Enjoy 0% Installment Payment Plan for 3 months on
all purchases made </b>
]]>
</mobilehighlight>
<locations>
<location>
<emirate>
<![CDATA[ XXX]]>
</emirate>
<address>
<![CDATA[ Center 1 ]]>
</address>
<latitude>
<![CDATA[ 51.169601 ]]>
</latitude>
<longitude>
<![CDATA[ 61.240395 ]]>
</longitude>
</location>
</merchants>

</categories>
</specialoffers>

Java代码如下:

    URL url = new URL(URL);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(url.openStream());

NodeList nodeList = doc.getElementsByTagName("category");

for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element)nodeList.item(i);
System.out.println(element.getFirstChild().getTextContent());



NodeList nodeList2 = doc.getElementsByTagName("merchants");
Element getChds = (Element)nodeList2.item(i);

for (int j=0; j < nodeList.getLength() ; j++){

NodeList nodeList3 = doc.getElementsByTagName("merchantname");
Element element1 = (Element)nodeList3.item(j);
System.out.println("--"+element1.getFirstChild().getTextContent());
}
}

我尝试在所有“类别”中显示类别和商家名称,并且能够显示所有类别的类别名称,但无法显示商家名称。

这是实际的 xml 字符串:http://www.adcb.com/specialoffers-test.xml

尝试打印:

0% Installment Payment Plan Offers 
--EmaxIPP
--Delma Medical Centre
.
.
Dining Offers
--Lounge Cafe
--India Palace Restaurant
.
.

最佳答案

当尝试打印商家时,您实际上是在迭代名为nodeListcategory NodeList的长度>。您需要迭代nodeList2

for (int  j=0; j < nodeList2.getLength() ; j++){ 
NodeList nodeList3 = doc.getElementsByTagName("merchantname");
Element element1 = (Element)nodeList3.item(j);
System.out.println("--"+element1.getFirstChild().getTextContent());
}

您使用的是 nodeList 的长度(6),而不是 nodeList2 的长度(16)。使用上面的内容将打印

--EmaxIPP
--Delma Medical Centre
--Lounge Cafe
--India Palace Restaurant
--Ashas-Wafi
--Dome Cafe
--Delma Medical Center
--Jacky's Electronics
--Dreamland Aqua Park
--Yas Island Rotana
--Dubai Dolpharium
--Autodrome
--Singapore - Grand Hyatt Singapore
--Thailand - Dusit Thani Laguna Phuket
--Joyalukkas
--LifeStyle Fine Jewelry

关于java - 安卓 : Reading XML data from URL using JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18813289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com