用java解析获得xml中的值

2025-03-30 06:39:47
推荐回答(2个)
回答1:

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Test {

        public static void main(String[] args) {
            File file = new File("d:\\Test.xml");
            SAXReader reader = new SAXReader();
            Document doc = null;
            try {
                doc = reader.read(file);
            }
            catch(DocumentException e) {
             e.printStackTrace();
            }
            Element root = doc.getRootElement();
            List records = root.elements("Record");
            for(Element record : records) {
             List fields = record.elements("Field");
             for(Element field : fields) {
                 parseFieldElement(field);
                }
            }
        }

        public static void parseFieldElement(Element e) {
         System.out.println(e.elementText("Name"));
         if(Integer.parseInt(e.attribute("isMultiValue").getValue()) == 1) {
     List fields = e.element("Value").element("LookupRecord").elements("Field");
     for(Element field : fields) {
     parseFieldElement(field);
     }
         }
         else {
         System.out.println(e.elementText("Value"));
         }
        }
        
}

回答2:

xpath搜索xml,比如

public void findNames(Document document) throws DocumentException {
        List list = document.selectNodes( "//Field/Name" );
        for (Iterator iter = list.iterator(); iter.hasNext(); ) {
            Attribute attribute = (Attribute) iter.next();
            String name = attribute.getValue();
            
        }
    }