объедините узлы в many-many отношении

У меня есть xml отрывок с many-many отношением через идентификационные признаки, пример был бы похож так:


  
    
    
    
  
  
  <!-- there might be more foo's here that reference the same
       bars, so foo can't be a child of bar -->
  
  
  

Скажите, что я хочу вынуть следующее:

baz-some-qux
baz-other-qux
baz2-third-qux2

(то есть, вставьте ценность someval между ценностями baz и qux от пункта, на который ссылаются), как я должен сделать это? Если бы я хочу использовать шаблон для бара, мне были бы нужны два различных. Я, вероятно, пропускаю что-то действительно основное здесь, таким образом, мои извинения заранее.

Править: расширенный пример)

1
добавлено отредактировано
Просмотры: 2
nl ja de
Martijn, Вы могли бы интересоваться более эффективным, основанным на ключе решением.
добавлено автор Dimitre Novatchev, источник

2 ответы

An efficient solution, using keys:


 
 

 

 
  
    
  
 

 
  

  
 

When this transformation is applied on the provided xml document (corrected for well-formedness):


  
    
    
    
  
  
  <!-- there might be more foo's here that reference the same
       bars, so foo can't be a child of bar -->
  
  
  

к требуемому, правильному результату приводят:

baz-some-qux
baz-other-qux
baz2-third-qux2
2
добавлено

Это должно добиться цели:


    

    
      
      
    

1
добавлено
спасибо за ответ! Не каждый foo элемент должен быть обработан для каждого барного элемента. I' ll расширяют мой вопрос немного, чтобы разъясниться.
добавлено автор Martijn, источник
Обновленный пример.
добавлено автор JLRishe, источник