Может и офф-топик, но простите уж - все равно, согласно "генеральной линии партии и правительства", SQL и XML - "близнецы-братья"... :-))
Есть XML-документ, примерно вот такой структуры:
<root>
<SomeTag>
<FullInfoList>
<Info ID="1" Attr1="a11" Attr2="a12" Attr3="a13"/>
<Info ID="2" Attr1="a21" Attr2="a22" Attr3="a23"/>
<Info ID="3" Attr1="a31" Attr2="a32" Attr3="a33"/>
<Info ID="4" Attr1="a41" Attr2="a42" Attr3="a43"/>
....
<Info ID="n" Attr1="an1" Attr2="an2" Attr3="an3"/>
</FullInfoList>
<BriefInfoList>
<Item ID="2"/>
<Item ID="4"/>
</BriefInfoList>
</SomeTag>
<SomeTag>
...
</SomeTag>
...
</root> |
|
Для каждого элемента
SomeTag мне необходимо выбрать такие элементы
FullInfoList/Info, у которых атрибут
ID совпадает с таким же атрибутом
ID элементов
BriefInfoList/Item.
Т.е. из описанного выше примера - это элементы:
<Info ID="2" Attr1="a21" Attr2="a22" Attr3="a23"/>
<Info ID="4" Attr1="a41" Attr2="a42" Attr3="a43"/>
|
|
Можно переформулировать задачу и по-другому: для каждого из элементов
BriefInfoList/Item - найди недостающие атрибуты из соответствующих им по
ID элементов
FullInfoList/Info.
С точки зрения SQL - классический JOIN на двух наборах данных, пересекающихся по полю
ID, а вот для XPath - никак не могу найти решения... :-((
Помогите, если можете, или дайте убедительное доказательство того, что такое - невозможно, а то я уже всю голову себе сломал... :-))