Я хочу прочитать все ссылки и заголовки одновременно в список массивов?
<rootNode>
<image>
<link>http://imagelink/</link>
<title>This is the title</title>
</image>
<movie>
<link>http://movielink/</link>
<title>This is the title</title>
</movie>
</rootNode>
Код ниже работает нормально, но там, где есть разные дочерние узлы, он может сделать код слишком большим.
Я не хочу множественного числа, я хочу что-то, что выглядит чисто!
ArrayList XTimeStamp = new ArrayList();
Node libraryTagNode, libraryDataNode;
Element libraryTagElement, libraryDataElement;
NodeList libraryTagList,libraryDataList;
try {
File file = new File("computer.txt");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
NodeList imageLst = doc.getElementsByTagName("image");
NodeList movieLst = doc.getElementsByTagName("movie");
for (int s = 0; s < imageLst.getLength(); s++) {
libraryTagNode=bookLst.item(s);
if (libraryTagNode.getNodeType() == Node.ELEMENT_NODE) {
libraryTagElement = (Element) libraryTagNode;
libraryTagList = libraryTagElement.getElementsByTagName("link");
libraryDataElement = (Element) libraryTagList.item(0);
libraryDataList = libraryDataElement.getChildNodes();
String timeStampX=libraryDataList.item(0).getNodeValue();
libraryTagList = libraryTagElement.getElementsByTagName("title");
libraryDataElement = (Element) libraryTagList.item(0);
libraryDataList = libraryDataElement.getChildNodes();
String timeStampY=libraryDataList.item(0).getNodeValue();
XTimeStamp.add(timeStampX+" "+timeStampY);
}
}
for (int s = 0; s < movieLst.getLength(); s++) {
libraryTagNode=bookLst.item(s);
if (libraryTagNode.getNodeType() == Node.ELEMENT_NODE) {
libraryTagElement = (Element) libraryTagNode;
libraryTagList = libraryTagElement.getElementsByTagName("link");
libraryDataElement = (Element) libraryTagList.item(0);
libraryDataList = libraryDataElement.getChildNodes();
String timeStampX=libraryDataList.item(0).getNodeValue();
libraryTagList = libraryTagElement.getElementsByTagName("title");
libraryDataElement = (Element) libraryTagList.item(0);
libraryDataList = libraryDataElement.getChildNodes();
String timeStampY=libraryDataList.item(0).getNodeValue();
XTimeStamp.add(timeStampX+" "+timeStampY);
}
}