2
특정 숫자, 유형 및 하위 노드가있는 노드를 찾는 XPath 표현식이 필요합니다. 예 :XPath : 첫 번째 자식 (특정 태그 인 경우에만)
//expr[count(child::*)=3]
[*[1][name()='expr']
[*[2][name()='LEFT_ASSIGN']
[*[3][name()='expr']
이 작동하지만, 자주 서로에 유사한 조건을 포함 할 필요 특히 때문에, 쓸 매우 복잡 : 우리는이 순서로, 유형 expr
, LEFT_ASSIGN
및 expr
의 expr
세 아동이 필요합니다. 예 :
//expr[count(child::*)=3]
[*[1][name()='expr'][count(child::*)=1][SYMBOL[count(child::*)=0]]]
[*[2][name()='LEFT_ASSIGN']]
[*[3][name()='expr']]
이 짧은, 간단한 방법이 있나요 : 나는 등, 또한 위의 첫 번째 expr
아이가 아이들의 특정 세트가 지정해야합니까? *[1][name()='expr']
이 *[1][self::expr]
입니다 쓰기의 XPath에서
<?xml version="1.0" encoding="UTF-8"standalone="yes" ?>
<exprlist>
<expr>
<expr>
<SYMBOL>X</SYMBOL>
</expr>
<LEFT_ASSIGN><-</LEFT_ASSIGN>
<expr>
<expr>
<NUM_CONST>42</NUM_CONST>
</expr>
<OP-STAR>*</OP-STAR>
<expr>
<NUM_CONST>42</NUM_CONST>
</expr>
</expr>
</expr>
<OP-SEMICOLON>;</OP-SEMICOLON>
<expr>
<expr>
<SYMBOL>Y</SYMBOL>
</expr>
<LEFT_ASSIGN><-</LEFT_ASSIGN>
<expr>
<NUM_CONST>42</NUM_CONST>
</expr>
</expr>
</exprlist>
감사합니다. 다음은 유용합니다! Btw. XPath가 단지 지정된대로 자식 노드의 순서를 고려하도록하고,'* [1] [self :: expr]'을 써야한다고 말할 방법이 없다고 가정합니다. –