如何在XPath中使用XML值识别节点?

Xiaoshi

我使用R来抓取网站,并且在解析HTML代码时,我的代码如下:

    <div class="line">
        <h2 class="clearfix">
            <span class="property">Number<div>number extra</div></span>
            <span class="value">3</span>
        </h2>
    </div>
    <div class="line">
        <h2 class="clearfix">
            <span class="property">Surface</span>
            <span class="value">72</span>
        </h2>
    </div>

现在,我想在此代码中获取一些值。

  • 如何用xml值“ Number”标识范围。并获取节点,以提取“额外数量”?我知道如何使用xpathApply来标识节点,以获取xmlValue或某些属性(例如hrefxmlGetAttr)。但是我不知道如何通过知道其xmlvalue来识别节点。

    xpathApply(page, '//span[@class="property"]',xmlValue)
    
  • 如果我想获取属性类“ Surface”的“值” 72,最有效的方法是什么?

这是我开始做的事情:首先,我提取所有“属性”:

xpathApply(page, '//span[@class="property"]',xmlValue)

然后我提取所有“值”:

xpathApply(page, '//span[@class="value"]',xmlValue)

然后,我建立一个列表或矩阵,以便可以标识“ Surface”的值,即72。但是问题是,有时,带有的跨度class="property"不能具有紧随其后的class =“ value”的跨度一个h2因此,我无法建立适当的列表。

这可能是最有效的方法吗?:标识范围with class="property",然后标识h2包含此范围的对象span,然后标识spanwith class="value"

克休斯

要通过添加单个根元素使HTML格式正确,

<?xml version="1.0" encoding="UTF-8"?>
<r> 
  <div class="line"> 
    <h2 class="clearfix"> 
      <span class="property">Number
        <div>number extra</div>
      </span>  
      <span class="value">3</span> 
    </h2> 
  </div>  
  <div class="line"> 
    <h2 class="clearfix"> 
      <span class="property">Surface</span>  
      <span class="value">72</span> 
    </h2> 
  </div> 
</r>

(A)这个XPath表达式,

//span[@class='property' and starts-with(., 'Number')]/div/text()

将返回

number extra

按照要求。


(B)这个XPath表达式,

//h2[span[@class='property' and . = 'Surface']]/span[@class='value']/text()

将返回

72

按照要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 PHP DOM XPath 中使用节点值获取属性值

如何在 C# 中使用 XPathEvaluate 方法通过 Xpath 获取节点元素属性的值?

如何在XPath中使用starts-with(),contains()和ends-with()查找xml节点的内部文本?在XPATH 1.0中

如何在Python中使用XPath选择同级的子节点?

如何在C#中使用xelement获取xml节点值

如何在SQL Server中使用命名空间获取XML节点值?

使用Groovy在SoapUI中使用Xpath查询在XML节点中使用xsi获取属性值

在JAXP中使用XPath检索XML节点和节点属性的值

如何在SQL Server中使用XPath和XQuery使XML值逗号分隔

如何在多个节点中使用 XLS 在 XML 中使用子字符串修改元素的属性值

如何在C#中使用xml解析器提取xml中节点的所有值?

如何在vb.net中使用XML节点的if条件

如何在Java中使用其数据反转xml节点

如何在XML名称空间中使用Scrapy XPath?

如何在Java中使用XPath读取XML

如何在Go中使用XPath从XML获取值

如何在xmlstarlet XPath中使用XML名称空间?

如何在Java中使用XPath获取属性值?

如何在xpath中使用“ not”?

如何在节点 js 中使用 LUIS 识别器捕获对用户输入的 LUIS JSON 响应

如何在C#中使用XPath从两个独立的节点中根据2个属性选择一个值?

在PostgreSQL中使用XPath过滤多个XML节点

如何使用带有for循环(Python)的xpath更改xml中的节点值?

如何使用XPath获取节点以及节点值

如何在节点值的开头使用Perl在XML中添加新的子节点

如何在SQL Server中使用XML DML更新XML节点

如何在Netsuite中使用Suitescript提取XML值@attribute?

如何在SELECT FOR XML语句的AS中使用列值

使用XPATH从重复的XML节点中检索值