Cześć. Starałem się znaleźć istniejący już temat z podobnym problemem. Jeśli taki był i go przeoczyłem, przepraszam. W tworzonej aplikacji w pewnym momencie muszę wyciągnąć konkretną wartość z pliku xml. Mam w nim listę przystanków i informacje na temat każdego z nich. Chciałbym, żeby aplikacja przeszła przez cały plik i jeśli przystanek nazywa się np. Kraków, to do String zostanie przypisana nazwa ulicy tej konkretnej stacji. Nie potrzebuję wszystkich ulic, tylko tej jednej. Na ten moment w konsoli wyświetlają mi się wszystkie informacje nt. każdej ze stacji. Jak to zrobić? Wielkie dzięki za każdą pomoc. :)
public class TicketPrice
{
public void showTicketPrice(List<Integer> listWithID) throws IOException, SAXException
{
try
{
String dir = System.getProperty("user.dir");
int routeID = listWithID.get(0);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(dir+ "/routes/" + routeID + ".xml");
NodeList stationList = doc.getElementsByTagName("station");
for(int i = 0; i < stationList.getLength(); i++)
{
Node s = stationList.item(i);
if(s.getNodeType()==Node.ELEMENT_NODE)
{
Element station = (Element) s;
NodeList infoList = station.getChildNodes();
for(int j = 0; j < infoList.getLength(); j++)
{
Node n = infoList.item(j);
if(n.getNodeType()==Node.ELEMENT_NODE)
{
Element info = (Element) n;
System.out.println(info.getTagName() + " " + info.getTextContent());
}
}
}
}
}
catch (ParserConfigurationException ex)
{
Logger.getLogger(TicketPrice.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Przykładowy plik xml (jest kilka tras) wygląda tak:
<?xml version="1.0" encoding="UTF-8"?>
<route>
<station id="1">
<city>KRAKOW</city>
<street>UL. BOSACKA 18</street>
<departureTime>9:30</departureTime>
<distanceFromID1>0</distanceFromID1>
</station>
<station id="2">
<city>KATOWICE</city>
<street>UL. SKARGI 1</street>
<departureTime>10:45</departureTime>
<distanceFromID1>81</distanceFromID1>
</station>
<station id="3">
<city>GLIWICE</city>
<street>UL. PLAC PIASTOW 6</street>
<departureTime>11:10</departureTime>
<distanceFromID1>109</distanceFromID1>
</station>
<station id="4">
<city>WROCLAW</city>
<street>UL. SUCHA 1</street>
<departureTime>13:35</departureTime>
<distanceFromID1>272</distanceFromID1>
</station>
<station id="5">
<city>ZMIGROD</city>
<street>UL. KOLODZIEJA 22</street>
<departureTime>14:05</departureTime>
<distanceFromID1>326</distanceFromID1>
</station>
<station id="6">
<city>SREM</city>
<street>UL. SADOWA 1</street>
<departureTime>15:00</departureTime>
<distanceFromID1>411</distanceFromID1>
</station>
<station id="7">
<city>POZNAN</city>
<street>UL. MATYI 2</street>
<departureTime>16:05</departureTime>
<distanceFromID1>464</distanceFromID1>
</station>
</route>