下面是我需要按升序显示“节点名称”的 XML 代码。
XML:
<node label="Tree Data">
<node name="View" type="Page">
<node name="Organisational Structure" type="Page"/>
<node name="Experience" type="Page"/>
<node name="Expertise" type="Language">
<node name="Flex" type="Language"/>
<node name="Android" type="Language"/>
<node name="Java" type="Language"/>
</node>
<node name="Project" type="Project">
<node name="Sabre" type="Project"/>
<node name="Android Project" type="Project"/>
<node name="Media Framework" type="Project"/>
<node name="CCD" type="Project"/>
<node name="Redbus" type="Project"/>
<node name="India Today" type="Project"/>
<node name="Money Control" type="Project"/>
</node>
</node>
<node name="Reorganize" type="Action"/>
<node name="Add New Employee" type="Action">
<node name="Dir" type="Page"/>
<node name="P.M" type="Page"/>
<node name="S.E" type="Page"/>
<node name="JUN" type="Page"/>
<node name="EMP" type="Page"/>
</node>
<node name="Add Project Members" type="Action"/>
</node>
以下是我的java代码:
JAVA代码:
import java.io.IOException;
import java.io.StringWriter;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
Document dom;
public MainActivity() {
MainActivity();
ArrayList<Element> listGroup = getGroups();
}
private ArrayList getGroups() {
try {
Element documentElement = (Element) dom.getDocumentElement();
System.out.println("root element is :"+documentElement.getNodeName());
NodeList childNodes = documentElement.getElementsByTagName("node");
for (int i = 0; i < childNodes.getLength(); i++) {
if (childNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) childNodes.item(i);
if(((Element) childNodes.item(i)).hasAttribute("name")) {
String name = element.getAttribute("name");
String type = element.getAttribute("type");
System.out.println("name : " + name);
System.out.println("type : " + type);
}}
}
} catch (Exception e) {
}
return null;
}
private void MainActivity() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
String sURL = "huhhadjdhjshdjks.com";
URL url = new URL(sURL);
DocumentBuilder db = dbf.newDocumentBuilder();
dom = db.parse(new InputSource(url.openStream()));
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (SAXException se) {
se.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
我得到以下输出:
日志猫:
01-31 17:45:59.330: I/System.out(1871): root element is :node
01-31 17:45:59.340: I/System.out(1871): name : View
01-31 17:45:59.360: I/System.out(1871): type : Page
01-31 17:45:59.380: I/System.out(1871): name : Organisational Structure
01-31 17:45:59.380: I/System.out(1871): type : Page
01-31 17:45:59.400: I/System.out(1871): name : Experience
01-31 17:45:59.400: I/System.out(1871): type : Page
01-31 17:45:59.400: I/System.out(1871): name : Expertise
01-31 17:45:59.400: I/System.out(1871): type : Language
01-31 17:45:59.400: I/System.out(1871): name : Flex
01-31 17:45:59.410: I/System.out(1871): type : Language
01-31 17:45:59.410: I/System.out(1871): name : Android
01-31 17:45:59.420: I/System.out(1871): type : Language
01-31 17:45:59.420: I/System.out(1871): name : Java
01-31 17:45:59.430: I/System.out(1871): type : Language
01-31 17:45:59.430: I/System.out(1871): name : Project
01-31 17:45:59.430: I/System.out(1871): type : Project
01-31 17:45:59.440: I/System.out(1871): name : Sabre
01-31 17:45:59.440: I/System.out(1871): type : Project
01-31 17:45:59.440: I/System.out(1871): name : Android Project
01-31 17:45:59.450: I/System.out(1871): type : Project
01-31 17:45:59.450: I/System.out(1871): name : Media Framework
01-31 17:45:59.460: I/System.out(1871): type : Project
01-31 17:45:59.460: I/System.out(1871): name : CCD
01-31 17:45:59.460: I/System.out(1871): type : Project
01-31 17:45:59.460: I/System.out(1871): name : Redbus
01-31 17:45:59.460: I/System.out(1871): type : Project
01-31 17:45:59.460: I/System.out(1871): name : India Today
01-31 17:45:59.480: I/System.out(1871): type : Project
01-31 17:45:59.480: I/System.out(1871): name : Money Control
01-31 17:45:59.489: I/System.out(1871): type : Project
01-31 17:45:59.489: I/System.out(1871): name : Reorganize
01-31 17:45:59.500: I/System.out(1871): type : Action
01-31 17:45:59.500: I/System.out(1871): name : Add New Employee
01-31 17:45:59.500: I/System.out(1871): type : Action
01-31 17:45:59.500: I/System.out(1871): name : Dir
01-31 17:45:59.500: I/System.out(1871): type : Page
01-31 17:45:59.510: I/System.out(1871): name : P.M
01-31 17:45:59.510: I/System.out(1871): type : Page
01-31 17:45:59.510: I/System.out(1871): name : S.E
01-31 17:45:59.530: I/System.out(1871): type : Page
01-31 17:45:59.530: I/System.out(1871): name : JUN
01-31 17:45:59.530: I/System.out(1871): type : Page
01-31 17:45:59.530: I/System.out(1871): name : EMP
01-31 17:45:59.530: I/System.out(1871): type : Page
01-31 17:45:59.530: I/System.out(1871): name : Add Project Members
01-31 17:45:59.530: I/System.out(1871): type : Action
我需要所有的名字都按升序排列。有什么帮助吗?