如何使用XPath正确筛选出生地为芝加哥的演员?
正确筛选出生地为芝加哥的演员的XPath表达式
让我来帮你搞定这个XPath匹配的问题,你之前的表达式没成功主要有两个关键原因:
- 你的原始XML结构里并没有
<Disney>和<Actors>这两层父节点,所以路径中//Disney/Actors的部分是无效的,直接从Actor节点开始查找即可。 - 目标演员的
<BirthPlace>文本是完整的Chicago, Illinois, USA,而不是单纯的Chicago,直接用=匹配'Chicago'自然匹配不到目标节点。
下面是两种可行的正确XPath表达式:
1. 精确匹配完整出生地文本
这个表达式会精准选中出生地完全等于Chicago, Illinois, USA的演员节点:
//Actor[BirthPlace = 'Chicago, Illinois, USA']
2. 匹配包含"Chicago"的出生地(更灵活)
如果想要匹配所有出生地包含"Chicago"的演员(比如后续有其他芝加哥地区的地址也能命中),可以使用contains()函数:
//Actor[contains(BirthPlace, 'Chicago')]
拓展:提取目标演员的具体信息
如果只想获取该演员的姓名,可以用:
//Actor[contains(BirthPlace, 'Chicago')]/Name/text()
内容的提问来源于stack exchange,提问作者Lilly
相关产品推荐
相关产品推荐

