English 中文(简体)
How to get node without children in xQuery?
原标题:

So I have two nodes of elements that I m essentially trying to join. I want the top level node to stay the same but the child nodes to be replaced by those cross referenced.

Given:

<stuff>
  <item foo="foo" boo="1"/>
  <item foo="bar" boo="2" />
  <item foo="baz" boo="3"/>
  <item foo="blah boo="4""/>
</stuff>

<list  a="1" b="2">
  <foo>bar</foo>
  <foo>baz</foo>
</list>

I want to loop through "list" and cross reference elements in "stuff" for this result:

<list  a="1" b="2">
  <item foo="bar" boo="2" />
  <item foo="baz" boo="3"/>  
</list>

I want to do this without having to know about what attributes might be on "list". In other words I don t want to have to explicitly call them out like

attribute a { $list/@a }, attribute b { $list/@b }
最佳回答

Use:

$list1/item[@foo = $list2/item/@foo]

This selects all <item> elements in $list1 the value of whose foo attribute is equal to the foo attribute of one of the <item> elements in $list2.

In order to copy all attributes of the <list> element, do something like this:

  for $attr in /whateverIsthePathLeadingToList/list/@*
    return 
      attibute {name($attr)} {$attr}
问题回答

Slightly simplier ... to create a new object from an existing one, but without its children only attributes

assume :

let $old_list :=

This creates a new list copying its attributes

 <list>{$old_list/@*}</list>




相关问题
how to represent it in dtd?

I have two element action and guid. guid is a required field when action is add. but when action is del it will not appear in file. How to represent this in dtd ?

.Net application configuration add xml-data

I need to add xml-content to my application configuration file. Is there a way to add it directly to the appSettings section or do I need to implement a configSection? Is it possible to add the xml ...

XStream serializing collections

I have a class structure that I would like to serialize with Xstream. The root class contains a collection of other objects (of varying types). I would like to only serialize part of the objects that ...

MS Word splits words in its XML format

I have a Word 2003 document saved as a XML in WordProcessingML format. It contains few placeholders which will be dynamically replaced by an appropriate content. But, the problem is that Word ...

Merging an XML file with a list of changes

I have two XML files that are generated by another application I have no control over. The first is a settings file, and the second is a list of changes that should be applied to the first. Main ...

How do I check if a node has no siblings?

I have a org.w3c.dom.Node object. I would like to see if it has any other siblings. Here s what I have tried: Node sibling = node.getNextSibling(); if(sibling == null) return true; else ...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

热门标签