【问题标题】:storing the attribute value from the node存储节点的属性值
【发布时间】:2013-01-18 09:54:12
【问题描述】:

我有以下 XML

<div class="new_select">
  <select id="Schwarzkopf Live Hair Colour1" class="sf_input" name="id[8]">
       <option value="0">Select Schwarzkopf Live Hair Colour</option>
       <option disabled="" value="199">Black #1.0 </option>
</select>
</div>

我想为节点“选择”保存属性值 id (Schwarzkopf Live Hair Colour1)

不记得这个函数。请帮忙。

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    如果这是您的整个 XML 文件,那么您可以使用它:

    /div/select/@id
    

    访问该选择的id 属性。如果不是,这将找到该属性:

    //select/@id
    

    但它也会在所有其他selects 上找到id 属性(如果还有其他属性)。有没有可能会有不止一个select?有没有办法唯一地挑出这个?

    【讨论】:

    • 你猜对了,它不是唯一的选择。但我可以唯一地识别这个选择。我正在使用 ruby​​/capybara 并尝试存储此 ID。 dropdown = browser.find(:xpath, "//div[@id='addtocart_modal']//select/@id").但它不起作用。我收到此错误消息“给定的选择器 //div[@id='addtocart_modal']//select/@id 无效或不会导致 WebElement。发生以下错误:InvalidSelectorError:xpath 的结果表达式“//div[@id='addtocart_modal']//select/@id”是:[object Attr]。应该是一个元素。
    • 错误提示只能使用 find() 选择元素,不能选择属性。从this SO question 上的cmets 看来,这听起来像是Capybara 使用的某个驱动程序的XPath 支持的限制。建议的解决方法是使用 selenium-webdriver 或 Nokogiri。
    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多