Python 是否有XPath来查找特定模式下的节点?
我试图编写一个xpath来查找具有遵循特定模式的子体的xml节点。例如,如果我有以下xml:Python 是否有XPath来查找特定模式下的节点?,python,regex,xml,xpath,Python,Regex,Xml,Xpath,我试图编写一个xpath来查找具有遵循特定模式的子体的xml节点。例如,如果我有以下xml: <While> <Condition> <ID val="shouldLoop"/> </Condition> <Assign> <ID val="StringVariable1"/> <Parens> <Parens> <String v
<While>
<Condition>
<ID val="shouldLoop"/>
</Condition>
<Assign>
<ID val="StringVariable1"/>
<Parens>
<Parens>
<String val="StringLiteral"/>
</Parens>
</Parens>
</Assign>
<Assign>
<ID val="StringVariable2"/>
<String val="StringFigurative"/>
</Assign>
<Assign>
<ID val="StringVariable3"/>
<Add>
<String val="StringLiteral"/>
<String val="StringFigurative"/>
</Add>
</Assign>
</While>
我想得到三个“Assign”节点中的前两个,基于它们有一个子节点,该子节点是嵌套在0个或多个“Parens”标记中的“String”节点
是否有一种xpath可以实现这一点,类似于使用正则表达式(如“(Parens/)*String”)将匹配“String”和“Parens/Parens/String”?请尝试下面的
xpath
并告诉我结果
//Assign[//Parens[String] or String][position()<3]
//分配[//Parens[String]或String][position()//分配[String | Parens//String]
将找到Assign
带有String
子对象或带有Parens
子对象的Assign
子对象。..
也将匹配,因此不精确。此xpath似乎将所有赋值与作为子对象的字符串或Parens/String节点匹配,并返回前两个。如果例如,XML的顺序不同,我仍然希望它返回带有StringVariable1和StringVariable2的赋值,但不返回StringVariable3。我正在寻找一种xpath,它将返回赋值,而赋值与其字符串子节点之间不带任何参数或仅带paren。StringVariable3的Add节点打破了这种模式,因此应该是这样的排除,但其余部分应匹配。是否存在类似于
的内容?您不希望也匹配此项,对吗?对。不匹配。