-3
4

1 回答 1

0

您可以使用 XPath 以完全防弹的方式做到这一点:

//*[local-name()='a' and count(@*)>0 and *[local-name()='img' and count(@*)>0] and count(.//*)=1 and normalize-space(.)='']

这将选择本地名称为“a”且没有非重要文本内容、属性的所有元素以及具有属性的单个“img”元素。

但是,由于您的示例代码显然是带有名称空间的 XML 和所有,也许您可​​以重新表述您的问题以说出您的总体任务是什么,而不是“我应该使用什么正则表达式”。至少,您似乎应该关注这些名称空间,而不是将名称空间声明视为属性。

例如,也许你真正的意思是这个?

//xhtml:a[@xlink:href and xhtml:img[@xlink:href] and count(.//*)=1 and normalize-space(.)='']
于 2012-06-29T05:35:57.243 回答