• <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)

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 330192
            • 排名 - 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 閱讀(846) 評論(0)  編輯 收藏 引用 所屬分類: Java
            久久久亚洲欧洲日产国码aⅴ| 亚洲中文字幕无码久久综合网| 久久久久亚洲AV成人网人人软件| 久久精品国产亚洲AV蜜臀色欲 | 日韩精品无码久久一区二区三| 久久91精品国产91| 久久精品国产精品国产精品污| 91精品国产9l久久久久| 亚洲综合伊人久久综合| 亚洲精品tv久久久久久久久久| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产精品无码久久综合| 国产精品成人99久久久久91gav | 久久综合亚洲色HEZYO国产| 久久综合视频网| 久久精品麻豆日日躁夜夜躁| 99久久精品免费| 久久久久无码精品国产app| 国内精品久久久久伊人av| 久久精品夜夜夜夜夜久久| 亚洲va久久久噜噜噜久久天堂| 国产精品久久成人影院| 久久久久久久久久久免费精品| 久久99国产精品尤物| 无码任你躁久久久久久老妇App| 国产精品成人99久久久久 | 色欲综合久久躁天天躁| 国产精品欧美久久久久天天影视| 国产成人精品久久二区二区| 久久综合九色综合网站| 久久精品免费一区二区| 伊人色综合久久天天人手人婷| 亚洲精品无码久久久久AV麻豆| 久久精品国产一区二区 | 免费精品国产日韩热久久| 热久久视久久精品18| 亚洲中文精品久久久久久不卡| 影音先锋女人AV鲁色资源网久久| 欧洲人妻丰满av无码久久不卡| 久久久久久人妻无码| 久久国产乱子精品免费女|