2017-02-12 41 views
2

для следующего документаПроектирование и сохранение структуры

<root> 
<child no=1> 
    <grandchild no=1></grandchild> 
    <grandchild no=2></grandchild> 
    <grandchild no=3></grandchild> 
</child> 
<child no=2> 
    <grandchild no=1></grandchild> 
    <grandchild no=2></grandchild> 
    <grandchild no=3></grandchild> 
    <grandchild no=4></grandchild> 
</child> 
</root> 

как я могу выбрать все дети вместе с только своих первых двух внуков? То есть Я хотел бы, чтобы вернуться

<child no=1> 
<grandchild no=1></grandchild> 
<grandchild no=2></grandchild> 
</child> 
<child no=2> 
<grandchild no=1></grandchild> 
<grandchild no=2></grandchild> 
</child> 

Моя попытка //child/grandchild[@no=1 or @no=2] только дает мне

<grandchild no=1></grandchild>, 
<grandchild no=2></grandchild>, 
<grandchild no=1></grandchild>, 
<grandchild no=2></grandchild> 

т.е. внуки уже не содержали в своих детей.

Большое спасибо за предложения и указатели! bb

+0

Xpath используется для выбора тега в xml, а не для его изменения. вы хотите изменить тег 'child', и xpath не сможет этого сделать. –

ответ

0

Xpath используется для выбора тега в xml, а не для его изменения. вы хотите изменить дочерний тег, и xpath не сможет этого сделать.

Но вы можете использовать библиотеку lxml или xml, чтобы проанализировать xml и изменить его.