
java 递归查询子节点,该怎么解决
1个回答
展开全部
public class Test {
public static void main(String[] args) {
SAXReader sax=new SAXReader();
try {
String path=URLDecoder.decode(Test.class.getResource("/MyXml.xml").getPath(), "UTF-8");
try {
Document d= sax.read(new FileInputStream(new File(path)));
Element e=d.getRootElement();
List<Element> li=e.elements();
check(li);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void check(List<Element> li){
if (li.size()==0) {
return;
}else{
for (Element element : li) {
if(element.attributeValue("id")!=null){
System.out.println(element.getName()+element.attributeValue("id")+"文本信息"+element.getTextTrim());
}
}
}
}
}
这是利用递归去解析XML的元素,跟找节点类似,希望能帮到你!
public static void main(String[] args) {
SAXReader sax=new SAXReader();
try {
String path=URLDecoder.decode(Test.class.getResource("/MyXml.xml").getPath(), "UTF-8");
try {
Document d= sax.read(new FileInputStream(new File(path)));
Element e=d.getRootElement();
List<Element> li=e.elements();
check(li);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void check(List<Element> li){
if (li.size()==0) {
return;
}else{
for (Element element : li) {
if(element.attributeValue("id")!=null){
System.out.println(element.getName()+element.attributeValue("id")+"文本信息"+element.getTextTrim());
}
}
}
}
}
这是利用递归去解析XML的元素,跟找节点类似,希望能帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询