日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

LearningR-XML

發布時間:2025/5/22 asp.net 138 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LearningR-XML 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為要讀取一個XML格式的數據,學習整理XML包。

1.XML包

1.1. 載入XML文件

有兩種方法:

  • 通過函數xmlTreeParse("file.xml")載入xml文件,如果不加入參數,將獲得關于這個xml文件的所有信息。所以,這個函數通常配合xmlRoot()使用,比如xmlRoot(xmlTreeParse("file.xml"))以得到xml主體文件。

  • 通過函數xmlTreeParse("file.xml", useInternalNodes = TRUE)來得到加入首行的xml文件主體

library(RCurl) library(XML) url<-"http://www.w3school.com.cn/example/xdom/books.xml" #注,也可以為url復制本地文件的路徑 doc<-xmlTreeParse(getURL(url),useInternal = TRUE) d <- xmlRoot(doc)

1.2. 獲取特定的節點

詳細XPath語言見XPath 語法

使用函數getNodeSet(doc, XPath)

XPath的常見用法:

  • 獲取第一個son元素
    /root/son[1]

  • getNodeSet(d, "/bookstore/book[1]")
  • 獲取最后一個son元素
    /root/son[last()]

  • getNodeSet(d, "/bookstore/book[last()]")
  • 獲取前兩個son元素
    /root/son[position() < 3]

  • getNodeSet(d, "/bookstore/book[position() < 3]")
  • 獲取任意son2元素
    //son2

  • getNodeSet(d, "/bookstore/book") getNodeSet(d, "/bookstore/book/title")
  • 獲取任意son2的age屬性
    //son2[@age]

  • getNodeSet(d, "//book[@category]")
  • 獲取任意son2的age屬性等于18的元素
    //son2[@age=18]

  • getNodeSet(d, "//book[@category='web']")
  • 獲取root下所有元素
    /root/*

  • getNodeSet(d, "/bookstore/*")
  • 獲取所有帶屬性的son元素
    //son[@*]

  • getNodeSet(d, "//book[@*]")

    節點相關函數

    • class(xmltop) #查看類

    • xmlName(node):查看根目錄名。
      node[[1]]:查看第一個子目錄

    node[1]]:查看第一個子目錄的第二個節點

    • xmlSize(node):該節點下字節點數量。

    • xmlAttrs(node):該節點屬性。

    • xmlGetAttr(node, attr):該節點某一屬性。

    • xmlValue(node):該節點值。

    • xmlChildren(node):該節點下的子節點。

    class(d) xmlName(d) xmlSize(d) xmlAttrs(d) xmlAttrs(d[[1]]) xmlAttrs(d[[1]][[1]]) xmlGetAttr(d[[1]][[1]], "lang") xmlChildren(d[[1]])#通過以下方式獲得的節點類型不同,建議使用getNodeSet d[[1]][[1]] getNodeSet(d, "//book/title")[[1]] getNodeSet(d, "//book[1]/title")

    1.3 xmlSApply和xmlApply

  • 讀取節點的值

  • #讀取第一本書的"title"的值 d[[1]][[1]][[1]] xmlValue(d[[1]][[1]]) xpathSApply(d, "/bookstore/book[1]/title", xmlValue) xpathSApply(d, "//book[1]/title", xmlValue)xpathSApply(d, "//book/title", xmlValue)xpathSApply(d, "//book[1]/title", xmlName) xpathSApply(d, "//book[1]/title", xmlSize) xpathSApply(d, "//book[1]/title", xmlAttrs)#xpathSApply和xpathApply的區別: #xpathSApply是xpathApply讀取值的一個因子 xpathApply(d, "//book[1]/title", xmlName) xpathApply(d, "//book[1]/title", xmlSize) xpathApply(d, "//book[1]/title", xmlAttrs)
  • 讀取節點的屬性值

  • xmlGetAttr(d[[1]][[1]], "lang")title<-getNodeSet(d, "//book[1]/title") title_lang<-sapply(title, xmlGetAttr, "lang") sapply(xmlChildren(d), xmlGetAttr, "category")#也可以通過該方法讀取節點的值 title_value<-sapply(title, xmlValue) sapply(xmlChildren(d[["book"]]), xmlValue)

    1.4 xml格式轉dataframe

    book <- getNodeSet(d, "//book") mybook <- sapply(book,xmlValue)#第一種方式,直接用xmlToDataFrame()函數 xmlToDataFrame(d) #由于book[4]不規范,導致轉化失敗 xmlToDataFrame(xmlChildren(d)[["book"]]) xmlToDataFrame(getNodeSet(d, "//book[1]")) xmlToDataFrame(nodes = getNodeSet(d, "//book/title"))#第二種方式,數據格式處理專用包plyr library("plyr") #先轉成list,再轉dataframe MyBooks <- ldply(xmlToList(d), data.frame) MyBooks <- ldply(xmlToList(getNodeSet(d, "//book")), data.frame)#第三種方式,讀取單個值后組合為dataframe author <- xpathSApply(d, "//book/author", xmlValue) #對第四個book的author值做特殊處理 author4 <- xpathSApply(d, "//book[4]/author", xmlValue) author4 <- paste(author4, collapse = ", ") author <- c(author[1:3],author4) MyBooks <- data.frame(category=sapply(xmlChildren(d), xmlGetAttr, "category"),title=xpathSApply(d, "//book/title", xmlValue),author,year=xpathSApply(d, "//book/year", xmlValue),price=xpathSApply(d, "//book/price", xmlValue))

    總結

    以上是生活随笔為你收集整理的LearningR-XML的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 一区二区三区精品国产 | 国产精品成人网 | 久久cao | 成人久久精品 | 国产成人亚洲一区二区 | 伊人春色在线观看 | 最新国产视频 | 亚洲一区 中文字幕 | 中文久久精品 | 亚洲欧美激情视频 | 国内激情自拍 | 我的邻居在线观看 | 国产乱码精品 | 涩涩av | 色777| 欧美小视频在线观看 | 四季av国产一区二区三区 | 91网站在线播放 | 亚洲一区二区三区在线观看视频 | 色综合视频在线 | 亚洲精选91 | 超碰一区二区三区 | 日韩一级免费 | 天天综合一区 | 国产一级aa大片毛片 | 免费大片黄在线观看 | 高清欧美性猛交 | 三级黄色网络 | 欧美精品一二区 | 国产亚洲精品久久久 | 电车痴汉在线观看 | 超碰.com | 国产成人小视频在线观看 | 人人草人人射 | 久久国产人妻一区二区免色戒电影 | 精品乱人伦一区二区三区 | 天天草天天操 | 欧美色图11p | 欧美xxxxhd| 国家队动漫免费观看在线观看晨光 | www.夜夜骑 | 成人精品一区日本无码网 | 香蕉视频入口 | 丝袜脚交免费网站xx | 亚洲综合五区 | 色播日韩| 欧美三级免费看 | 国产成人a∨ | 久操视频精品 | 成人在线视频一区二区 | 中文精品久久 | 国产美女在线看 | 综合久久亚洲 | 亚洲操图 | 国产在成人精品线拍偷自揄拍 | 午夜婷婷网 | 亚洲一区在线视频 | 美女被猛网站 | 午夜精品久久久久久毛片 | 色爱视频 | 久久久久久穴 | 国产伦精品一区二区三区妓女 | 成年人拍拍视频 | 国产精品久久久久久av | 欧美大片在线看免费观看 | 欧美视频一二三 | 精品久久无码视频 | 国产亚洲一区二区三区在线观看 | 国产夫妻在线视频 | www.三区 | 一区二区三区三区在线 | 久久亚洲AV成人无码国产人妖 | 极品在线视频 | 欧洲久久久久 | 丁香花高清在线观看完整动漫 | 日韩在线1 | tube国产麻豆| 亚州久久久 | 天堂av亚洲av国产av电影 | 天天夜夜爽 | h网站免费在线观看 | 九九亚洲 | 狠狠人妻久久久久久综合麻豆 | 一本到在线视频 | 97超碰免费在线观看 | 一区二区三区久久久久 | 成人精品网 | 成人午夜在线视频 | www黄色片网站 | 又污又黄又爽的网站 | 国产精品久久国产精品99 | 国产精品com | 中文字幕av一区二区 | 国产福利片一区二区 | 国产精品午夜一区二区 | 国产精品久免费的黄网站 | 自拍视频网站 | 国产精品1区2区3区4区 | www亚洲|