Допустим, у меня есть набор XML сообщений, каждое с общим заголовком, но с разными типами в противном случае:
<MessageType details="test">
<MessageHeader>
<HeaderContent>content</HeaderContent>
</MessageHeader>
<OtherStuff detail="test"/>
<MessageContent>
<MessageText>text</MessageText>
</MessageContent>
</MessageType>
<MessageType2 details="test2">
<MessageHeader>
<HeaderContent>content2</HeaderContent>
</MessageHeader>
<MessageContent2>
<MessageText2>text2</MessageText2>
</MessageContent2>
</MessageType2>
<MessageType3 details="test3">
<MessageHeader>
<HeaderContent>content3</HeaderContent>
</MessageHeader>
<OtherStuff3 detail="test3"/>
<MoreStuff3 detail="test3"/>
<MessageContent3>
<MessageText3>text3</MessageText3>
<AnotherElement><Test text="">text3</Test></AnotherElement>
</MessageContent3>
</MessageType3>
Мне нужен xpath, который выберет все, кроме MessageHeader
и элемент root (поскольку он содержит MessageHeader
).
//*[not(self::MessageHeader)]
выберет все, кроме MessageHeader
, но он также выберет элемент root, который я не хочу do.
Я бы также согласился на то, что выбирает всех братьев и сестер MessageHeader
, потому что я думаю, что в моем случае это в основном делает то же самое