• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            為生存而奔跑

               :: 首頁 :: 聯系 :: 聚合  :: 管理
              271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

            留言簿(5)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 328615
            • 排名 - 74

            最新評論

            閱讀排行榜

            評論排行榜

            首先需要導入的包
            import javax.xml.parsers.*;
            import org.w3c.dom.*;
            import org.xml.sax.SAXException;
            import javax.xml.transform.*;
            import javax.xml.transform.dom.*;
            import javax.xml.transform.stream.*;

            import java.io.*;
            然后建立一個DocumentBuilder對象

            DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder
            =docBuilderFactory.newDocumentBuilder();

            DocumentBuilder的parse方法可以把一個xml文件處理并返回Document類型的對象
            Document document=docBuilder.parse(xmlFile);

            之后就可以通過Document提供的方法進行訪問了

            假設有一個XML格式為
            <entailment-corpus>
            <pair id="001" contradiction="YES" type="negation">
                    
            <t>Tariq Aziz was not considered a member of Saddam's innermost circle.</t>
                    
            <h>Tariq Aziz was in Saddam's inner circle.</h>
            </pair>
            <pair id="002" contradiction="YES" type="lexical">
                    
            <t>Tariq Aziz kept outside the closed circle of Saddam's Sunni Moslem cronies.</t>
                    
            <h>Tariq Aziz was in Saddam's inner circle.</h>
            </pair>
            </entailment-corpus>

            下面的程序把該XML修改為
            <entailment-corpus>
            <pair id="001" contradiction="YES" type="negation">
                    
            <t>Tariq Aziz was not considered a member of Saddam's innermost circle.</t>
                    
            <h>Tariq Aziz was in Saddam's inner circle.</h>
            <addElement1>addText1</addElement1>
            <addElement2>addText2</addElement2>
            </pair>
            <pair id="002" contradiction="YES" type="lexical">
                    
            <t>Tariq Aziz kept outside the closed circle of Saddam's Sunni Moslem cronies.</t>
                    
            <h>Tariq Aziz was in Saddam's inner circle.</h>
            </pair>
            </entailment-corpus>



            import javax.xml.parsers.*;
            import org.w3c.dom.*;
            import org.xml.sax.SAXException;
            import javax.xml.transform.*;
            import javax.xml.transform.dom.*;
            import javax.xml.transform.stream.*;

            import java.io.*;
            import java.util.*;

            public class TestDom {

                
                
            public void modifyXML(File xmlFile){
                    
            try{
                        DocumentBuilderFactory docBuilderFactory
            =DocumentBuilderFactory.newInstance();
                        DocumentBuilder docBuilder
            =docBuilderFactory.newDocumentBuilder();
                        Document document
            =docBuilder.parse(xmlFile);
                        Element root
            =document.getDocumentElement();
                        
            //System.out.println(root.getNodeName());
                        NodeList pairNodeList=root.getElementsByTagName("pair");
                        
            for(int i=0;i<pairNodeList.getLength();i++){
                            Node pairNode
            =pairNodeList.item(i);   // tag <pair>
                            
            //System.out.println(pairNode.getNodeName());
                            
                            NodeList pairChild
            =pairNode.getChildNodes(); //tag <t> <h>  會把空格也算上,因此pairChild.getLength()!=2
                            for(int j=0;j<pairChild.getLength();j++){
                                Node pairChildNode
            =pairChild.item(j);
                                
            //System.out.println(pairChildNode.getNodeName());
                                if(pairChildNode instanceof Element){     //由于會把空格算上,所以要判斷是否是Element
                                    Element pairChildElement=(Element)pairChildNode;
                                    String text
            =((Text)pairChildElement.getFirstChild()).getData().trim();
                                    System.out.println(text);
                                }
                            }
                            
                            Element addElement1
            =document.createElement("addElement1");
                            addElement1.setTextContent(
            "addText1");
                            pairNode.appendChild(addElement1);
                            
                            Element addElement2
            =document.createElement("addElement2");
                            addElement2.setTextContent(
            "addText2");
                            pairNode.appendChild(addElement2);
                        }
                        
                        
                        TransformerFactory tFactory 
            =TransformerFactory.newInstance();
                        Transformer transformer 
            = tFactory.newTransformer();
                        DOMSource source 
            = new DOMSource(document);
                        StreamResult result 
            = new StreamResult(new java.io.File("E:/我的文檔/tmp/modify.xml"));
                        transformer.transform(source, result);
                    }
                    
            catch(ParserConfigurationException   e){
                        e.printStackTrace();
                    }
                    
            catch (IOException e){
                        e.printStackTrace();
                    }
                    
            catch (SAXException e){
                        e.printStackTrace();
                    }
                    
            catch(TransformerException e){
                        e.printStackTrace();
                    }
                }
                
            /**
                 * 
            @param args
                 
            */
                
            public static void main(String[] args) {
                    
            // TODO Auto-generated method stub
                    String path="E:/我的文檔/tmp/數據/real_contradiction.xml";
                    TestDom testDom
            =new TestDom();
                    testDom.modifyXML(
            new File(path));
                }

            }


            注意getChildNodes()會把空格也當做一個Node,因此在程序中要判斷pairChildNode是不是instanceof Element
            如果是Element,那么就可以獲得其中的內容了。
            posted on 2010-04-21 18:24 baby-fly 閱讀(840) 評論(0)  編輯 收藏 引用 所屬分類: Java
            久久亚洲AV成人无码软件| 久久精品国产99国产电影网| 国产ww久久久久久久久久| 久久久久亚洲AV无码去区首| 国内精品久久久久影院亚洲| 久久国产精品99精品国产| 精品久久久久久国产三级| 色播久久人人爽人人爽人人片AV| 日韩精品无码久久久久久| 99久久人人爽亚洲精品美女| 一本久久综合亚洲鲁鲁五月天| 精品久久久噜噜噜久久久| 香蕉aa三级久久毛片| 亚洲狠狠综合久久| 日产精品久久久一区二区| 国产亚州精品女人久久久久久 | 久久精品一区二区| 97精品依人久久久大香线蕉97| 久久精品国产精品青草app| 国产香蕉久久精品综合网| 麻豆精品久久精品色综合| 日韩精品久久久肉伦网站| 人妻精品久久久久中文字幕| 精品久久久久久亚洲| 久久久精品2019免费观看| 久久人人爽人人人人爽AV | 成人妇女免费播放久久久| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久综合综合久久97色| 久久亚洲欧美国产精品| 久久久亚洲AV波多野结衣| 久久人人爽人人澡人人高潮AV| 久久国产视频99电影| 91久久精品国产免费直播| 久久精品一区二区三区不卡| 99久久精品午夜一区二区 | 亚洲国产成人久久综合碰碰动漫3d | 久久久无码人妻精品无码| 久久久久99精品成人片直播| 久久久国产精品亚洲一区| 久久精品欧美日韩精品|