Я пытаюсь выбрать элементы на основе атрибутов элемента sub этого элемента.Фильтрация XElements по атрибутам элемента потомка
Оригинал Xml:
<Root>
<Element1 id="1">
<element2>XXXX</element2>
<element2>XXXX</element2>
<element2>XXXX</element2>
<Filter attr1="1" attr2="0" attr3="0" attr4="1" attr5="0"></Filter>
</Element1>
<Element1 id="2">
<element2>XXXX</element2>
<element2>XXXX</element2>
<element2>XXXX</element2>
<Filter attr1="1" attr2="0" attr3="0" attr4="1" attr5="0"></Filter>
</Element1>
<Element1 id="3">
<element2>XXXX</element2>
<element2>XXXX</element2>
<element2>XXXX</element2>
<Filter attr1="1" attr2="0" attr3="0" attr4="1" attr5="0"></Filter>
</Element1>
</Root>
Это то, что я сделал до сих пор:
Dim xmlElement = (From rec In RecipeXmlDocument.Descendants("RECEPT") _
Where (rec.Descendants("Filter")[email protected] = Ing.Poultry.ToString() _
Or rec.Descendants("Filter")[email protected] = "1" _
Or rec.Descendants("Filter")[email protected] = "0" _
And (rec.Descendants("Filter")[email protected] = "1" _
Or rec.Descendants("Filter")[email protected] = "0" _
Or rec.Descendants("Filter")[email protected] = "1"
Это выдает следующее сообщение об ошибке: «исключение типа 'System.Linq.SystemCore_EnumerableDebugViewEmptyException' был брошен «.
Код, который вы пытаетесь сделать, - это выбрать все элементы Element1, где элемент фильтра этого элемента1 соответствует предложению where.
Я довольно новичок в linq, и я не совсем уверен, что я делаю неправильно.
Пожалуйста, разместите полные образцы, позволяющие воспроизвести проблему. Выполнение 'RecipeXmlDocument.Descendants (« RECEPT »)' с вашим размещенным образцовым документом кажется довольно странным, учитывая, что размещенный образец не содержит элементов с именем «RECEPT». Чтобы объяснить полученную ошибку, нам нужно увидеть достаточно информации, чтобы воспроизвести ее. –
Извините, элемент «RECEPT» - «Элемент 1» в примере Xml, который я разместил. – Martinffx