xpath:检查元素是否在其他元素中
我有一个相当大的XML结构,其最简单的形式如下所示:xpath:检查元素是否在其他元素中,xpath,Xpath,我有一个相当大的XML结构,其最简单的形式如下所示: <document> <body> <section> <p>Some text</p> </section> </body> <backm> <section> <p>Some text</p>
<document>
<body>
<section>
<p>Some text</p>
</section>
</body>
<backm>
<section>
<p>Some text</p>
<figure><title>This</title></figure>
</section>
</backm>
</document>
一些文本
一些文本
这
部分
的级别几乎可以是无限的(在主体
和backm
元素中),因此我可以在部分
中在部分
中有一个部分
,等等,图形
元素可以在numlist
中,一个itenmlist
,ap
,以及更多元素
我想做的是检查
figure
元素中的title
是否在backm
元素中的某个位置。这可能吗?一个文档可以有多个
元素,也可以有多个标题元素。如何构建查询取决于您试图区分的情况
//backm/descendant::figure/title
将返回
元素的子元素和
元素的后代的
元素
因此:
如果有一个或多个此类title
元素,则将返回True
您也可以使用
我觉得这应该有更好的表现
列出所有
元素,其中包含一个
父元素和一个
祖先元素。一个文档可以有多个
元素,也可以有多个标题
元素。如何构建查询取决于您试图区分的情况
//backm/descendant::figure/title
将返回
元素的子元素和
元素的后代的
元素
因此:
如果有一个或多个此类title
元素,则将返回True
您也可以使用
我觉得这应该有更好的表现
列出所有
元素,其父元素为
,父元素为
。您尝试过什么解决方案?您想知道它是否在backm
文本中的任何位置吗?Homer6:我尝试过/body/backm[*::this],并且在级别上有所不同,但是有很多层次可以涵盖所有可能的替代方案,所以我需要一个更通用的解决方案。harpo:我想知道figure元素中的标题是否在backm元素中的任何位置。您尝试过哪些解决方案?您想知道它是否在backm
的文本中的任何位置?Homer6:我尝试过/body/backm[*::this]虽然在级别上有所不同,但是有很多级别可以涵盖所有可能的选项,所以我需要一个更通用的解决方案。哈波:我想告诉你figure元素中的标题是否在backm元素中的任何位置。马特:谢谢你的回复!一些澄清:只能有一个backm。我想检查figure元素中的title是否在backm元素中。@user2075124:不客气。我仍然在试图在xpath
中对双重否定进行思考,我有点理解它们,但下一刻就失去了它!是的,双重否定很棘手。但不起作用(只检查backm中的figure中是否有标题,我想检查figure中的当前标题是否在backm中)。@user2075124:这不是你要求的。嗯,英语不是我的母语,因此我对任何混淆表示歉意。我试图写得更清楚:“我想做的是检查figure元素中的title是否在backm元素中的某个位置。这可能吗?”MattH:谢谢你的回答!一些澄清:只能有一个backm。我想检查figure元素中的title是否在backm元素中。@user2075124:不客气。我仍然在试图在xpath
中对双重否定进行思考,我有点理解它们,但下一刻就失去了它!是的,双重否定很棘手。但不起作用(只检查backm中的figure中是否有标题,我想检查figure中的当前标题是否在backm中)。@user2075124:这不是你要求的。嗯,英语不是我的母语,因此我对任何混淆表示歉意。我试图通过写:“我想做的是检查figure元素中的title是否在backm元素中的某个位置。这可能吗?”
not(//backm[not(descendant::figure/title)])
//title[parent::figure][ancestor::backm]