[英]xml parsing using Dom in java
如何以這種格式打印此xml文件:
GMSports | 類別| 比賽| TeamAName - TeamBName:TeamAScore - TeamBScore
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<GMSport SportId="1">
<Name language="en">Soccer</Name>
<Category CategoryId="34">
<Name language="en">Australia</Name>
<Tournament TournamentId="144">
<Name language="en">Hyundai A-League</Name>
<Match MatchId="4616735">
<MatchDate>2011-01-05T07:30:00</MatchDate>
<TeamA TeamId="1029369">
<Name language="en">Wellington Phoenix FC</Name>
</TeamA>
<TeamB TeamId="529088">
<Name language="en">Melbourne Victory</Name>
</TeamB>
<Status Code="0">
<Name language="en">Not started</Name>
</Status>
<Winner>0</Winner>
</Match>
</Tournament>
</Category>
</GMSport>
</Data>
我在這里嘗試
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = null;
try {
docBuilder = factory.newDocumentBuilder();
} catch (ParserConfigurationException ex) {
Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex);
}
Document doc = docBuilder.parse (new File("test.xml"));
NodeList list = doc.getElementsByTagName("*");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element) list.item(i);
String nodeName = element.getNodeName();
if (nodeName.equals("GMSport")) {
System.out.print(nodeName+"|");
}
else if (nodeName.equals("Category")) {
System.out.print(nodeName+"|");
}
else if (nodeName.equals("Tournament")) {
System.out.print(nodeName+"|");
}
}
} catch (SAXException ex) {
Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex);
}
}
在當前的代碼中,您將解析和報告/打印邏輯混合到一個無法擴展的邏輯中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.