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

            我參與的團隊

            搜索

            •  

            積分與排名

            • 積分 - 330224
            • 排名 - 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
            亚洲欧美日韩中文久久| 久久se精品一区二区| 伊人久久亚洲综合影院| 国产精品99久久久精品无码| 国产精品久久久久国产A级| 久久免费国产精品一区二区| 国内精品久久国产| 久久国产乱子精品免费女| 久久综合狠狠综合久久97色| 国产69精品久久久久APP下载| 99久久久精品| 伊人久久大香线蕉综合影院首页| 国产 亚洲 欧美 另类 久久| 性高湖久久久久久久久AAAAA| 久久国产精品国产自线拍免费| 亚洲伊人久久成综合人影院 | 国产一区二区三区久久精品| 国产精品伦理久久久久久| 无码人妻久久久一区二区三区 | 中文字幕亚洲综合久久菠萝蜜| 狠狠色丁香婷婷综合久久来| 欧美亚洲国产精品久久| 久久久久人妻一区精品| 久久99精品国产99久久| 99久久人妻无码精品系列蜜桃| 亚洲愉拍99热成人精品热久久| 亚洲国产精品无码久久青草| 国内精品久久久久国产盗摄| 成人国内精品久久久久影院| 老色鬼久久亚洲AV综合| 亚洲va中文字幕无码久久不卡| 无码任你躁久久久久久老妇App| 久久久久国产精品麻豆AR影院| 国产午夜精品久久久久九九| 久久精品免费一区二区三区| 99久久人妻无码精品系列| 好属妞这里只有精品久久| 国产成人综合久久综合| 国产午夜精品理论片久久影视| 国产综合久久久久久鬼色| 国内精品久久久久伊人av|