如何在android上解析xml中的一个子节点?

时间:2013-03-29 08:40:07

标签: android parsing xml-parsing

我是android编程新手。我想创建可以解析xml文件的应用程序。在xml文件结构下面

<Cuaca>
<Tanggal>
<Mulai>30 March 2013</Mulai>
<MulaiPukul>07.00</MulaiPukul>
<Sampai>31 March 2013</Sampai>
<SampaiPukul>07.00</SampaiPukul>
</Tanggal>
<Isi>
<Row>
<Kota>Wates</Kota>
<point>
<coordinates>-</coordinates>
</point>
<Lintang>-7.81337</Lintang>
<Bujur>110.14757</Bujur>
<Balai>BBMKG_Ciputat</Balai>
<Propinsi>DI Yogyakarta</Propinsi>
<Cuaca>Berawan</Cuaca>
<_symbol>../imagesSWF/Berawan.swf</_symbol>
<SuhuMin>24</SuhuMin>
<SuhuMax>32</SuhuMax>
<KelembapanMin>67</KelembapanMin>
<KelembapanMax>96</KelembapanMax>
<KecepatanAngin>15</KecepatanAngin>
<ArahAngin>Tenggara</ArahAngin>
</Row>
<Row>
<Kota>Bantul</Kota>
<point>
<coordinates>-</coordinates>
</point>
<Lintang>-7.90749</Lintang>
<Bujur>110.35802</Bujur>
<Balai>BBMKG_Ciputat</Balai>
<Propinsi>DI Yogyakarta</Propinsi>
<Cuaca>Berawan</Cuaca>
<_symbol>../imagesSWF/Berawan.swf</_symbol>
<SuhuMin>24</SuhuMin>
<SuhuMax>33</SuhuMax>
<KelembapanMin>64</KelembapanMin>
<KelembapanMax>95</KelembapanMax>
<KecepatanAngin>15</KecepatanAngin>
<ArahAngin>Tenggara</ArahAngin>
</Row>
<Row>
<Kota>Wonosari</Kota>
<point>
<coordinates>-</coordinates>
</point>
<Lintang>-7.99321</Lintang>
<Bujur>110.58518</Bujur>
<Balai>BBMKG_Ciputat</Balai>
<Propinsi>DI Yogyakarta</Propinsi>
<Cuaca>Berawan</Cuaca>
<_symbol>../imagesSWF/Berawan.swf</_symbol>
<SuhuMin>25</SuhuMin>
<SuhuMax>32</SuhuMax>
<KelembapanMin>65</KelembapanMin>
<KelembapanMax>94</KelembapanMax>
<KecepatanAngin>15</KecepatanAngin>
<ArahAngin>Tenggara</ArahAngin>
</Row>
</Isi>
</Cuaca>

我使用DOM解析器成功解析了上面的页面。但我想要的是从xml文件中取一部分而不进行循环,例如:

<Row>
<Kota>Wates</Kota>
<point>
<coordinates>-</coordinates>
</point>
<Lintang>-7.81337</Lintang>
<Bujur>110.14757</Bujur>
<Balai>BBMKG_Ciputat</Balai>
<Propinsi>DI Yogyakarta</Propinsi>
<Cuaca>Berawan</Cuaca>
<_symbol>../imagesSWF/Berawan.swf</_symbol>
<SuhuMin>24</SuhuMin>
<SuhuMax>32</SuhuMax>
<KelembapanMin>67</KelembapanMin>
<KelembapanMax>96</KelembapanMax>
<KecepatanAngin>15</KecepatanAngin>
<ArahAngin>Tenggara</ArahAngin>
</Row>
有人可以帮我吗?对不起,如果我的写作很乱,那是因为我第一次在论坛上提问。

1 个答案:

答案 0 :(得分:0)

如果要解析特定节点,则需要移动到该节点,

   NodeList row_nodes = document.getElementsByTagName("Row");
                   for (int i = row_id; i < row_nodes.getLength();) {
                           org.w3c.dom.Element row_element = (org.w3c.dom.Element) row_nodes                                            .item(i);


                           break;
                   }

此处row_id是特定节点的数量 比如,如果row_id为0,那么它将解析

<Row>
<Kota>Wates</Kota>
...
</Row>

如果row_id为1则会解析

<Row>
<Kota>Bantul</Kota>
...
</Row>

如果row_id为2则会解析

<Row>
<Kota>Wonosari</Kota>
...
</Row>

希望这会对你有所帮助,