我在野外看到过类似的问题,但由于某种原因,我无法找到正确的方法。
所以我得到this page
在主要项目下有2篇文章(商品)
我想在包含man jacket
的文章中获取输入(文本)字段我已尝试过什么:
//article[ //h3[ text() = "eZ Publish - Man jacket"] ]//input
//article[ //h3[contains(text(), "eZ Publish - Man jacket")] ]//input
//article[ contains( .//h3[ text() = 'eZ Publish - Man jacket' ] ) ]//input
下一个有效:
//h3[text()='eZ Publish - Man jacket']/../../..//input
......但这不是一种选择......
知道我做错了什么吗?
答案 0 :(得分:1)
您可能意味着//article[.//h3[ text() = "eZ Publish - Man jacket"] ]//input
,即在article
上下文中使用相对XPath表达式(以'。'开头)
答案 1 :(得分:0)
您的第一个XPath表达式有效,但是根据您的源XML,您将看不到任何值,因为您的“输入”元素没有值,而是具有值的属性。
如果要输出所有属性值,则需要在“input”之后添加/ @ *以指定所有(*)属性(/@).
你的第二个XPath表达式将不起作用,因为你试图传递一个节点树(text(),它正在针对// h3运行,因此返回多个节点)作为contains函数的字符串参数。
你的第三个XPath表达式不起作用,因为你只将一个参数传递给contains,这需要两个。
希望这有帮助。