0

我有一堆带有搜索结果的 Yandex.XML 文件。 http://api.yandex.com/xml/doc/dg/concepts/response.xml

我想找出//yandexsearch/request/query所有此类 XML 文件的查询 (),其中第一个 URL ( (//yandexsearch/response/results/grouping/group/doc/url)[1]) 等于某个值(例如,http://www.example.org/)。

grep_ -l_ xargs xmllint_ xmllint_发现xmllint有一个类似于-l最初匹配的标志)。

4

1 回答 1

1

搜索yandexsearchresponse元素包含您要查找的 URL 的元素,然后选择查询。

/yandexsearch[
  contains(
    (response/results/grouping/group/doc/url)[1],
    "http://www.example.org"
  )]/request/query

对于该页面上给出的示例 XML 和搜索字符串http://www.yandex.ru,它将返回以下元素:

<query>yandex</query>

如果您的搜索字符串始终是 url 的前缀,您可能希望starts-with(...)使用contains(...).

于 2014-01-11T10:27:49.893 回答