<Invoice type='Component' displayName='Invoice' pluralName='Invoices' Msgversion='1' version='1'>
<UserData type='SpecialElement'>
<Something />
</UserData>
<From type='SpecialElement'>
<Something />
</From>
<To type='SpecialElement'>
<Something />
</To>
<CdtDbtNoteAmt type='xsd:decimal' />
<PmtDueDt type='xsd:date' />
<Adjstmnt>
<AdjAmt />
<Rate />
</Adjstmnt>
<CpyDplct type='PickList'>
<Item Text='Copy Duplicate' Value='CODU' />
<Item Text='Copy' Value='COPY' />
<Item Text='Duplicate' Value='DUPL' />
</CpyDplct>
<InvItems type='ParentElement'>
<InvGd type='Element'>
<GdDesc type='xsd:decimal' />
<QtyVl type='xsd:decimal' />
<ChrgAmt type='xsd:decimal' />
<PrceVl type='xsd:decimal' />
</InvGd>
</InvItems>
</Invoice>
Привет,
Мне нужно получить элементы, где
- атрибут type не является SpecialElement или PickList
- есть дочерние элементы
- атрибут type для родителя не является ParentElement
Итак, основываясь на фрагменте XML, я хочу получить элементы Adjstmnet и InvGd.
Самое близкое, что я могу получить, это
var query = from n in xe.Elements()
let attributeType = n.Attribute("type").Value
where attributeType != "SpecialElement"
where attributeType != "PickList"
where n.HasElements
select n;
но это не включает элемент InvGd.
Есть идеи, что мне нужно изменить / добавить?
Спасибо
David