1
當我處於元素節點上時,如何簡化代碼混亂?我的代碼如下所示:以簡單的方式解析XML中的元素,dom4j
private void readXmldata(String xml_debug_settings)
{
File xml_debug_settings_file = new File(xml_debug_settings);
if (xml_debug_settings_file.exists())
{
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(xml_debug_settings_file);
Element root = document.getRootElement();
Iterator itr = root.elements().iterator();
Element element =null;
while (itr.hasNext()) {
Element debel = (Element) itr.next();
if (debel.getName().equals("mainnode")) {
Iterator itrd = debel.elementIterator();
while (itrd.hasNext())
{
Element child = (Element) itrd.next();
System.out.println(child.getName());
if (child.getName().equals("node1"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node2"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node3"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node4"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node4"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node5"))
{
System.out.println(child.getText());
}
}
}
}
} catch (DocumentException ex) {
Logger.getLogger(Debugsettings.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我想這個例子中的更少的代碼:(非常混亂,並沒有完全清理代碼):
if (child.getName().equals("node1"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node2"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node3"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node4"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node4"))
{
System.out.println(child.getText());
}
if (child.getName().equals("node5"))
{
System.out.println(child.getText());
}
你會在不同的if-s中有不同的行爲,或者你總是會有相同的行爲,例如只是打印文本? – peshkira
只需要解析所有元素,不要指定子元素。 –