Select 通过 xpath 只知道元素属性的结尾
Select by xpath knowing only ending of element's attribute
有这样的xml文件。我如何才能 select 只有那个 href
属性以 parent
结尾的标签,如下面的第三个元素。
按位置确定
elem = tree.findall('{*}CustomProperty')[2]
不适合,因为某些文档可能只有一个 parent
href,其他 5-10 个和第三个可能根本没有这样的 href。
我倾向于使用 xpath,但不知道如何让 xpath 搜索属性匹配的结尾。
此外 xpath 不是必须的,我很乐意使用适合我目的的任何方式
那么我怎样才能得到 CustomProperty
元素,它的 href
属性以单词 parent
结尾?
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566:parent">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
提前感谢您的帮助
尝试使用包含选择器查找属性 href 包含单词 parent
的元素
//*[contains(@href, 'parent')]
或者如果您确定文本的位置 "parent" 您可以使用 ends-with
//*[ends-with(@href, 'parent')]
是否
//CustomProperty[contains(@href, 'parent') and substring-after(@href, 'parent') = '']
满足您的要求?该建议的一个问题是它对于 parent
出现不止一次的 href 属性失败。
如果您的 xpath 处理器支持 xpath 2.0,请使用 aberna 的建议。
出于性能原因,请记住尽可能用特定路径替换“//”轴。
有这样的xml文件。我如何才能 select 只有那个 href
属性以 parent
结尾的标签,如下面的第三个元素。
按位置确定
elem = tree.findall('{*}CustomProperty')[2]
不适合,因为某些文档可能只有一个 parent
href,其他 5-10 个和第三个可能根本没有这样的 href。
我倾向于使用 xpath,但不知道如何让 xpath 搜索属性匹配的结尾。
此外 xpath 不是必须的,我很乐意使用适合我目的的任何方式
那么我怎样才能得到 CustomProperty
元素,它的 href
属性以单词 parent
结尾?
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
<CustomProperty href="urn:1653267:643562dafewq:cs:46wey5ge:234566:parent">urn:1653267:643562dafewq:cs:46wey5ge:234566:ss</CustomProperty>
提前感谢您的帮助
尝试使用包含选择器查找属性 href 包含单词 parent
的元素//*[contains(@href, 'parent')]
或者如果您确定文本的位置 "parent" 您可以使用 ends-with
//*[ends-with(@href, 'parent')]
是否
//CustomProperty[contains(@href, 'parent') and substring-after(@href, 'parent') = '']
满足您的要求?该建议的一个问题是它对于 parent
出现不止一次的 href 属性失败。
如果您的 xpath 处理器支持 xpath 2.0,请使用 aberna 的建议。
出于性能原因,请记住尽可能用特定路径替换“//”轴。