JavaはJDomを利用してXML形式のデータを解析して伝達する

4554 ワード

JavaはJDomを利用してXML形式のデータを解析して伝達する
JavaはJDomを利用してXMLデータフォーマットを解析処理する:
必要なパッケージjdom-1.1.2.jar
1データをXML形式に変換して転送する
Element rootList, firstList, secondItem, thirdItem;
//      
rootList = new Element("root");
//            
rootList.setAttribute("project", pname);
//  Doc  
Document Doc = new Document(rootList);
//         
rootList = Doc.getRootElement();
for (int i = 0; i < judges.size(); i++)
{
//      
firstList = new Element("flayout");
firstList.setAttribute("percent", "percent");
//       
rootList.addContent(firstList);
}
XMLOutputter XMLOut = new XMLOutputter();
// doc          XML  
String xmlinfo = XMLOut.outputString(Doc);
//      
xmlinfo = xmlinfo.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>",
"");
//        XML  
return xmlinfo;

2文字列中のXMLを解析して処理する
//         
StringReader read = new StringReader(stadXML);
//        SAX        InputSource           XML   
InputSource source = new InputSource(read);
//       SAXBuilder
SAXBuilder sb = new SAXBuilder();
String projectName;
List<Judgestandard> standIndex = new ArrayList<Judgestandard>();
try {
//          Document
Document doc = sb.build(source);
//      
    Element root = doc.getRootElement();
    projectName = root.getAttributeValue("project");
//              
    Element et = null;
    List nodes = root.getChildren();
//      
for (int i = 0; i < nodes.size(); i++) {
       et = (Element) nodes.get(i);//          
       Judgestandard judge = new Judgestandard();
//          
       String fid = et.getAttributeValue("mainid");
    //         
List fsize = et.getChildren();
//      
for (int j = 0; j < fsize.size(); j++)
{
           et = (Element) fsize.get(j);//          
           et.getAttributeValue("stdid")
       }

Java処理XMLドキュメント
元のXML:
<?xml version="1.0" encoding="UTF-8"?>
<HD>
    <disk name="C">
         <capacity>8G</capacity>
          <files>1580</files>
    </disk>
   <disk name="D">
               <capacity>10G</capacity>
               <files>3000</files>
    </disk>
</HD>

Java処理コード:
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
/**
 * <?xml version="1.0" encoding="UTF-8"?>
 *<HD>
 *   <disk name="C">
 *     <capacity>8G</capacity>
 *       <files>1580</files>
 *   </disk>
 *   <disk name="D">
 *       <capacity>10G</capacity>
 *       <files>3000</files>
 *    </disk>
 *</HD>
 * @author Administrator
 *
 */
//  JDom   XML  
public class JDomParseXMLFile {
    public static void main(String[] args) throws Exception{
          
          SAXBuilder sb=new SAXBuilder();
          //      document   , xml            
          Document doc=sb.build(JDomParseXMLFile.class.getClassLoader().getResourceAsStream("test.xml"));
          //Document doc=sb.build("src/test.xml");//      
          Document doc=sb.build("src/test.xml");//      
          Element root=doc.getRootElement();//     ,     <HD>
          List list=root.getChildren("disk");//    disk     
          for(int i=0;i<list.size();i++)
          {
              Element element=(Element)list.get(i);//       disk  
              String name=element.getAttributeValue("name");
              String capacity=element.getChildText("capacity");// disk   capacity   
              String files=element.getChildText("files");
              System.out.println("name:"+name);
              System.out.println("capacity"+capacity);
              System.out.println("files"+files);
          }
    }
}