Мне нужна помощь по использованию xpath для исключения определенных узлов из списка узлов xml.Структура XML ниже.Файл xml большой, около 8000 элементов, большинство из которых имеют тип подменю.
<Menu>
<MenuId>2905</MenuId>
<Item>
<ItemId>191916</ItemId>
<ItemType>content</ItemType>
</Item>
<Item>
<ItemId>17343</ItemId>
<ItemType>submenu</ItemType>
<Menu>
...
</Menu>
</Item>
</Menu>
Что мне нужно сделать, так это для определенного MenuID (например, 2905) исключить все дочерние узлы, кроме тех, гдеItemType = 'content'
Я думал, что ниже будет работать?
Menu[MenuId !='2905' or MenuId = '2905' and child::ItemType = 'content']/Item
Разве это не должно выбрать все узлы, которые не в 2905 и любые, которые в 2905 и тип контента?Использование .NET, которое я попробовал, ниже:
XmlNodeList nextLevelNodeList = currentNode.SelectNodes(string.Format("Menu[MenuId !='2905' or MenuId = '2905' and child::ItemType = 'content']/Item));
Любые идеи будут с благодарностью ...
ура Натан