其子元素以元素 X 开头和结尾的元素的 XPath?

问题描述 投票:0回答:2

这是我的例子:

<div>
  <p><em>Emphasized text</em> followed by any <span>other text</span> and ending with an <em>emphasized text</em></p>
</div>

我想要的是抓住这段以

em
开头并以
em
结尾的段落。这些标签之间可能是文本,包括其他内联标签,如
span
img
a
等。

一个现实世界的例子可以是一些学术和报纸写作规则,当你必须强调已经强调的文本中的文本时,你取消强调中的强调,即作者介绍或参考书目:

如果我们有这样一句话: -- John Doe 是《强调中的强调》一书的作者。 -- 一种打印规则是这样写:

约翰·多伊 (John Doe) 是《强调中强调》一书的作者。 但是当你要打印这一段强调时,它就会变成:

约翰·多伊 (John Doe) 是

强调中强调书的作者。 与参考书目演示相同:

John Doe,

强调内部强调

,纽约,出版商名称,2024 年。 强调的变成:

John Doe,

强调强调,纽约,出版商名称,2024 年。 考虑某些文本(作者、姓名、出版商名称或书名)可能锚定到链接。

这个问题是

上一个问题

的延伸,我们只是在寻找一个以p开始和结束的

em
。提供了一些答案,涵盖处理
p
后跟一个或多个
em
的简单或更复杂的情况,并且标签之间没有其他文本。这里的区别在于,标签之间有一些文本,但主要目的是相同的:段落的开头和结尾强调了中间可能存在的任何内容。
    

html xml dom xpath
2个回答
0
投票

//*[./*[1][name()="em"] and ./*[last()][name()="em"]]

同样使用
child

//*[child::*[1][name()="em"] and child::*[last()][name()="em"]]



0
投票

//p[node()[1][self::em]][node()[last()][self::em]]

将根据要求选择其子元素以 
p

元素开头和结尾的所有

em
元素
    

© www.soinside.com 2019 - 2024. All rights reserved.