这个代码你google一下能找到几万篇。

解决方案 »

  1.   

    用dom解析
    getFileName:List<Element> list = fDocument.selectNodes("//FileName")
    遍历list用Element.valueOf("@name")可以得到FileName的name的值getFileElements(String filename):
    Element fileNameElement = fDocument.selectSingleNode("//FileName[@name=" + filename + "]")
    Iterator childernNodes = fileNameElement.elementIterator();
    遍历childernNodes 用node.getText()可以得到FileElement的值
      

  2.   

    第一个:public List parseXMLString(String XmlFile, String Filename) throws ParserConfigurationException, IOException, SAXException {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();       
    dbf.setNamespaceAware(true);            
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource inStream = new InputSource();
    inStream.setCharacterStream(new StringReader(XmlFile));
    Document xmlDoc = db.parse(inStream);
    List nlistElem = xmlDoc.getElementsByTagName(Filename);
    if(nlistElem.getLength() == 0) {
    throw new SAXException("Error: the given FileName - " + element + "does not exist in the XML string");
    }
    else {
    return nlistElem;
    }
    }
    第二个,只要新建一个FileName的profile就可以,在profile里定义得到FileElement的方法。
      

  3.   

    使用DOM4J或JDOM,自己去找找API 一会就能看会了。
      

  4.   

    第二个:getFileElements(String filename),根据FileName的name值返回对应的FileElement的所有的值。 
      //dom4j
    package com.victorysoft.util;import org.dom4j.io.*;
    import java.io.*;
    import java.util.*;
    import org.dom4j.*;public class ReadXml {

    public List getFileElments(String filename) {
    List threeContents = new ArrayList();
    try {// 得到一个解析器,相当于SAX,DOM里面的解析器工厂,与解析器
    SAXReader reader = new SAXReader();
    // 得到一个对象树
    Document document = reader.read(new File("1.xml"));
    // 得到一个根元素
    Element root = document.getRootElement();
    // 得到所有的一级子元素
    List firstElements = root.elements();
    // 迭代一级子元素
    Iterator it = firstElements.iterator();
    while (it.hasNext()) {
    Element firstElement = (Element) it.next();
    List secondElements = firstElement.elements();
    // 遍历二级子元素
    Iterator iter = secondElements.iterator();
    while (iter.hasNext()) {
    Element secondElement = (Element) iter.next();
    // 二级子元素的名字
    secondElement.getName();
    // 二级子元素的属性
    List secAtt = secondElement.attributes();
    for (Object obj : secAtt) {
    Attribute att = (Attribute) obj;
    //通过filename判断
    if (att.getValue().equals(filename)) {
    List threeElements = secondElement.elements();
    Iterator itera = threeElements.iterator();
    while (itera.hasNext()) {
    Element threeElement = (Element) itera.next();
    threeContents.add(threeElement.getText());
    }
    }
    }
    } }
    return threeContents;
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }
    }
      

  5.   

    package com.user;import java.io.IOException;
    import java.util.List;import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.jdom.xpath.XPath;public class JDomExample {
    private SAXBuilder sb;
    private Document doc;
    private List list;
    // xml文件路径名字
    private String fileName = "xmlFile.xml";
    // xml节点名字
    private static String filename = "c.xml";
    // 临时变量
    Element temp;
    // 保存四个FileName的name的值
    private static String[] sFileName;
    // 返回对应的FileElement的所有的值
    private static String[] sFileElement; public String[] getFileName() {
    sb = new SAXBuilder();
    try {
    doc = sb.build(fileName);
    list = XPath.selectNodes(doc, "//FileName");
    sFileName = new String[list.size()];
    for (int i = 0; i < list.size(); i++) {
    temp = (Element) list.get(i);
    sFileName[i] = temp.getAttributeValue("name");
    // System.out.println(sFileName[i]);
    }
    return sFileName;
    } catch (JDOMException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    } public String[] getFileElements(String filename) {
    sb = new SAXBuilder();
    try {
    doc = sb.build(fileName);
    // 通过XPath选取符合条件的节点
    list = XPath.selectNodes(doc, "//FileName[@name='" + filename
    + "']");
    Element e = (Element) list.get(0);
    list = e.getChildren();
    sFileElement = new String[list.size()];
    for (int i = 0; i < list.size(); i++) {
    temp = (Element) list.get(i);
    sFileElement[i] = temp.getTextNormalize();
    // System.out.println(sFileElement[i]);
    } return sFileElement;
    } catch (JDOMException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return null;
    } public void stringPrint(String[] s) {
    for (int i = 0; i < s.length; i++) {
    System.out.println(s[i]);
    }
    } public static void main(String[] a) {
    JDomExample test = new JDomExample();
    // 把四个FileName的name的值存放到sFileName
    test.getFileName();
    // 对应的FileElement的所有的值存放到sFileName
    test.getFileElements(filename);
    // test.stringPrint(sFileName);
    // test.stringPrint(sFileElement);
    }
    }
      

  6.   

    Document doc = DocumentHelper.parseText("那段字符串");
    List list = doc.selectNodes("ReadFile/File/FileName[@name='"+filename+"']/FileElement");
    然后对list进行遍历就可以了