<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      寶寶不開心

      用DOM方式解析XML

       

      一、用DOM方式解析XML

      此例子節點結構如下:

      1、獲取book節點屬性

      (1).如果不知道節點的屬性,通過 NamedNodeMap attrs = book.getAttributes(); 來獲取屬性的集合(藍色部分代碼)

      (2)、如果知道book節點有且只有一個id屬性,則用

         Element book = (Element)bookList.item(i);
        String attrValue = book.getAttribute("id");

        來遍歷屬性,將藍色部分替換為黃色部分

      import java.io.IOException;
      import javax.xml.parsers.DocumentBuilder;
      import javax.xml.parsers.DocumentBuilderFactory;
      import javax.xml.parsers.ParserConfigurationException;
      import org.w3c.dom.Document;
      import org.w3c.dom.Element;
      import org.w3c.dom.NodeList;
      import org.xml.sax.SAXException;
      
      public class DomTest {
      
          public static void main(String[] args) {
              //1.創建一個DocumentBuilderFactory對象
              DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
              //2.創建一個DocumentBuilder對象
              try {
                  //3.創建一個Document對象
                  DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
                  //4.通過Document對象的perse方法加載book。xml文件到當前項目下
                  Document document = documentBuilder.parse("book.xml");
                  //獲取book結點的集合
                  NodeList bookList = document.getElementsByTagName("book");
                  //遍歷每一個book節點
                  //獲取bookLength()長度
                  System.out.println("共有" + bookList.getLength() + "本書");
                  for(int i = 0;i < bookList.getLength();i++) {
                      System.out.println("現在開始遍歷第" + (i + 1) + "本書---");
                      //通過item(i)獲取book節點,下標從0開始
                      Node book = bookList.item(i);
                      //獲取book屬性集合
                      NamedNodeMap attrs = book.getAttributes();
                      //遍歷book屬性
                      System.out.println("第" + (i + 1) + "本書共有" + attrs.getLength()+ "個屬性");
                      for(int j = 0;j < attrs.getLength();j++) {
                          //通過item()獲取屬性
                          Node attr = attrs.item(j);
                          System.out.print("屬性名" + attr.getNodeName());
                          System.out.println("   屬性值" + attr.getNodeValue());
                      }

                      Element book = (Element)bookList.item(i);
                      String attrValue = book.getAttribute("id");
                      System.out.println(attrValue);
      
                      System.out.println("第" + (i + 1) + "本書遍歷完畢");
                  }
              } catch (ParserConfigurationException e) {
                  e.printStackTrace();
              } catch (SAXException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }

       

       3、遍歷book的子節點的屬性

      (1)、用 NodeList childNodes = book.getChildNodes(); 來獲取子節點的屬性

      (2)、用 getValue()不能得到子節點值, 因為Element類型getValue()返回null

      (3)、用 childNodes.item(k).getFirstChild().getNodeValue() 可以得不到子節點的值(藍色部分)

      (4)、用 childNodes.item(k).getTextContent() 可以得到子節點的值(黃色部分)

      public class DomTest {
      
          public static void main(String[] args) {
              //1.創建一個DocumentBuilderFactory對象
              DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
              //2.創建一個DocumentBuilder對象
              try {
                  //3.創建一個Document對象
                  DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
                  //4.通過Document對象的perse方法加載book。xml文件到當前項目下
                  Document document = documentBuilder.parse("book.xml");
                  //獲取book結點的集合
                  NodeList bookList = document.getElementsByTagName("book");
                  //遍歷每一個book節點
                  //獲取bookLength()長度
                  System.out.println("共有" + bookList.getLength() + "本書");
                  for(int i = 0;i < bookList.getLength();i++) {
                      System.out.println("------------現在開始遍歷第" + (i + 1) + "本書---------");
                      //通過item(i)獲取book節點,下標從0開始
                      Node book = bookList.item(i);
                      //獲取book屬性集合
                      NamedNodeMap attrs = book.getAttributes();
                      //遍歷book屬性
                      System.out.println("第" + (i + 1) + "本書共有" + attrs.getLength()+ "個屬性");
                      for(int j = 0;j < attrs.getLength();j++) {
                          //通過item()獲取屬性
                          Node attr = attrs.item(j);
                          System.out.print("屬性名" + attr.getNodeName());
                          System.out.println("   屬性值" + attr.getNodeValue());
                      }
                      NodeList childNodes = book.getChildNodes();
                      //遍歷childNodes獲取節點名和結點值
                      System.out.println("第" + (i + 1) + "本書共有" + 
                              childNodes.getLength() + "個子節點");
                      for(int k = 0;k < childNodes.getLength();k++) {
                          //區分text類型的Node和Element類型的Node
                          if(childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
                              //獲取Element節點名和節點名
                              System.out.print("第" + (k + 1) + "個節點的節點名是" + 
                                      childNodes.item(k).getNodeName());
      System.out.println("----節點的節點值是" + childNodes.item(k).getFirstChild().getNodeValue());
      System.out.println("----節點的節點值是" + childNodes.item(k).getTextContent()); } } System.out.println("------------第" + (i + 1) + "本書遍歷完畢-------------"); } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

      (5)、如果節點變成這樣

      加上一個節點,childNodes.item(k).getFirstChild().getNodeValue() 返回的是null,不是節點值,此時getFirstChild為<aaa>節點,Element類型。

      而 childNodes.item(k).getTextContent() 返回的正常的子節點值

       

       小白一枚,還有不懂得地方:加上<aaa>節點之后getFirstChild().getNodeValue() 為什么返回不了“ADD”呢?

      歡迎批評指正,謝謝。

      posted on 2018-07-16 16:51  寶寶不開心  閱讀(235)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产精品无码成人午夜电影| 亚洲午夜久久久久久噜噜噜| 久久久亚洲欧洲日产国码农村 | 国产精品不卡区一区二| 免费人成在线观看网站| 中文字幕无线码在线观看| 男女啪啪免费观看网站| 国产精品亚洲二区在线播放| 国产sm重味一区二区三区| 高中生粉嫩无套第一次| 色五月丁香五月综合五月| 成人免费A级毛片无码片2022 | 精品天堂色吊丝一区二区| 影音先锋啪啪av资源网站| 亚洲乱色伦图片区小说| 插插射啊爱视频日a级| 色欲国产精品一区成人精品| 狠狠综合久久综合88亚洲| 久久zyz资源站无码中文动漫| 好紧好湿好黄的视频| 中国女人高潮hd| 国产伦精品一区二区三区| 日韩在线成年视频人网站观看| 成人又黄又爽又色的视频| 性欧美vr高清极品| 大方县| 日韩国产精品无码一区二区三区| 亚洲精品国产精品乱码不| 亚洲AV乱码毛片在线播放| 熟女视频一区二区在线观看| 成人午夜伦理在线观看| 亚洲精品午夜国产VA久久成人 | 最新精品国偷自产在线| 亚洲www永久成人网站| 国内精品一区二区不卡| 国产亚洲精品成人aa片新蒲金| 91亚洲国产成人精品福利| 国产精品成人亚洲一区二区| 日韩人妻精品中文字幕| 欧美性xxxxx极品少妇| 18禁黄网站免费|