2016-11-24 5 views
0

я следующий XML:пропустить XML-элемент с xmllint

<root> 
    <Type1 name=""> 
    <Type2 name=""> 
     <Type3 name=""> 
     <finalType name=""> 
      <element value=""/> 
     </finalType> 
     </Type3> 
    </Type2> 
    </Type1> 
</root> 

Я хотел бы, чтобы достичь значения элемента в <finalType>, как правило, я пишу:

echo //root/Type1/Type2/Type3/finalType /[email protected] xmllint etc... 

НО в моем заявке finalType может быть в Type1 или Type2! , Так что я искал что-то вроде этого

echo //root/***/finalType /[email protected] xmllint etc... 

, но, к сожалению, он не работает .. Есть ли у вас какие-либо идеи Как «пропустить» в Type1, TYPE2 ...?

ответ

1

Просто используйте двойной слэш (или descendant::):

echo ls /root//element   | xmllint --shell file.xml 
echo ls /root/descendant::element | xmllint --shell file.xml 
+0

спасибо, это работает! – psykoblast

Смежные вопросы