<li><strong>Movie Title:</strong> Training Day</li>
如何抓取此 li 标签中的文本内容;"培训日"?
所以我需要说'如果强标签中有'电影标题',则返回'训练日'。
我已经尝试过使用"以下兄弟姐妹"的东西,但似乎无法做到这一点。
另一个尝试是
//li/text()[preceding::strong[contains(text(),'Movie Title')]]
但这会返回所有文本,而不仅仅是 li 类内部的文本。
实际上//li/text()
应该返回"训练日",而//li//text()
- "训练日"和"电影标题:">
您可以尝试更具体的XPath
//li[starts-with(., "Movie Title:")]//text()[not(parent::strong)]
仅获得"培训日">
如何抓取这个 li 标签中的文本内容;"培训日"?
所以我需要说'如果强标签中有'电影标题',则返回'训练日'。
以下 XPath 表达式选择所有li 元素的文本节点,其值包含字符串"电影标题"的强元素。
//li[contains(strong,'Movie Title')]/strong/following-sibling::text()
在您的示例 XML 中,这将导致"培训日"。
但是,如果随后有更多的文本节点,则必须将表达式限制为第一个文本节点,如下所示
//li[contains(strong,'Movie Title')]/strong/following-sibling::text()[1]