• <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
            人妻丰满?V无码久久不卡| 国产精品免费久久久久久久久| 色欲久久久天天天综合网| 日本精品久久久久影院日本| 久久久久亚洲AV成人网人人网站| 一本综合久久国产二区| 国产精品青草久久久久福利99| 久久99热狠狠色精品一区| 一本大道久久a久久精品综合| 国产精品久久久久9999高清| 91精品国产高清久久久久久国产嫩草| 精品久久人人做人人爽综合| 久久99精品国产麻豆婷婷| 人妻无码αv中文字幕久久琪琪布| 午夜精品久久久久久影视riav| 久久青青草视频| 狠狠色丁香婷婷综合久久来来去| 久久香蕉国产线看观看99| 久久精品国产精品亚洲| 久久久久高潮综合影院| 777久久精品一区二区三区无码| 久久精品国产精品亚洲| 77777亚洲午夜久久多喷| 久久99国内精品自在现线| 久久天天躁狠狠躁夜夜2020| 无码人妻久久久一区二区三区 | 国产精品午夜久久| 精品免费tv久久久久久久| 色狠狠久久AV五月综合| 亚洲嫩草影院久久精品| 国产成人精品综合久久久| 久久97久久97精品免视看| 99久久人妻无码精品系列蜜桃| 久久久久99这里有精品10 | 亚洲午夜无码久久久久小说| 久久婷婷激情综合色综合俺也去| 久久久噜噜噜久久| 国产福利电影一区二区三区久久老子无码午夜伦不 | 日韩人妻无码一区二区三区久久| 日本道色综合久久影院| 亚洲欧美日韩精品久久亚洲区|