【问题标题】:R programming XML: extract specific nodeR编程XML:提取特定节点
【发布时间】:2012-07-29 19:32:31
【问题描述】:

我想知道如何使用 R 的 XML 包到达特定节点。这是一个使用 R 内置数据集 mtcars 的示例。

fileName <- system.file("exampleData", "mtcars.xml", package="XML") 
doc <- xmlTreeParse(fileName)
doc$doc$children$dataset

运行上面的代码给了我 ff.结果:

....
 <record id="Fiat 128">32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1</record>
 <record id="Honda Civic">30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2</record>
 <record id="Toyota Corolla">33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1</record>
 <record id="Toyota Corona">21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1</record>
 <record id="Dodge Challenger">15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2</record>
 <record id="AMC Javelin">15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2</record>
 <record id="Camaro Z28">13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4</record>
 <record id="Pontiac Firebird">19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    
....

我想知道如何选择特定节点并使用 xmlAttrs 获取它们的值。例如,我将如何选择节点:&lt;record id="Fiat 128"&gt; 或节点&lt;record id="Honda Civic"&gt;

【问题讨论】:

    标签: r web-scraping


    【解决方案1】:
    doc <- xmlTreeParse(fileName)
    doc <- xmlParse(fileName) 
    xpathSApply(doc,"//*/record[@id=\"Fiat 128\"]",xmlValue)
    xpathSApply(doc,"//*/record[@id=\"Honda Civic\"]",xmlValue)
    

    使用xmlParse,相当于xmlTreeParse(useInternalNodes=T) 有关xpath 的信息请参阅https://www.w3schools.com/xml/xpath_syntax.asp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 2013-10-22
      相关资源
      最近更新 更多