Hi Shaun,

On 13.06.2018 20:53, Shaun Flynn wrote:
declare variable $testSet := doc($queryPath || "tests\testSet1.xml");

here you bind a whole XML document (and therefore its corresponding, invisible *document node*) to `$testSet`. This is a wrapper around the root element that associates the XML content with the URI of its surrounding document.

When I run $testSet/*, I would expect to get the following result:

<test1>
   <content>Foobar</content>
</test1>
<test1>
   <content>Foobar</content>
</test1>

However, I get the complete document in testSet1.xml

This is because the root element `test` is the first and only child of the document node.

When I run this against testSet1.xml

$testSet/*/*

then I get what would I expect to see: [...]

This is correct (if confusing). `$testSet/*` is the first child of the document node, the `test` element, so `$testSet/*/*` is the set of `test`'s children.

Hope that helps,
  Leo Wörteler

[1] https://www.w3.org/XML/Datamodel.html#document

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to