Login or Sign up Help | Site Map
Connecting Tech Pros Worldwide

xinclude all children

Question posted by: McSwell (Guest) on July 4th, 2008 09:35 PM
I have an XML file that looks something like this:
------------------------
<?xml ...?>
<!DOCTYPE ...>
<src:fragment id="foo" ...>
<Ph:Itemsome stuff </Ph:Item>
<Ph:Itemsome more stuff </Ph:Item>
....
<Ph:Itemstill more stuff </Ph:Item>
</src:fragment>
----------------------

I want to xinclude all the children of the root element into another
XML file. I've been trying things like
<xi:include href="firstFileName" xpointer="foo/1"/>
However, if(!) I'm understanding correctly, this would only xinclude
the *first* child of the element named 'foo'. Instead, I want to
xinclude *all* the children. I would have thought that this
<xi:include href="firstFileName" xpointer="foo/*"/>
would work, but it generates an error:
XPointer evaluation failed: #foo/*
All the variants of this that I've tried also fail.

How do I xinclude all children of the specified element?

Mike Maxwell
CASL/ U MD
Would you like to answer this question?
Sign up for a free account, or Login (if you're already a member).
Philippe Poulard's Avatar
Philippe Poulard
Guest
n/a Posts
July 7th, 2008
09:35 AM
#2

Re: xinclude all children
hi,

McSwell a écrit :
Quote:
Originally Posted by
I have an XML file that looks something like this:
------------------------
<?xml ...?>
<!DOCTYPE ...>
<src:fragment id="foo" ...>
<Ph:Itemsome stuff </Ph:Item>
<Ph:Itemsome more stuff </Ph:Item>
...
<Ph:Itemstill more stuff </Ph:Item>
</src:fragment>
----------------------
>
I want to xinclude all the children of the root element into another
XML file. I've been trying things like
<xi:include href="firstFileName" xpointer="foo/1"/>


Provided that your XInclude engine support them, you can use the
xpointer() scheme from the XPointer framework ; usually, tools that
support them only support XPath, or a subset of XPath

If I don't make mistakes, try this :
<xi:include href="firstFileName" xpointer="xpointer(/foo/node())"/>
....but I don't remember if the spec doesn't impose limitations such as
"there must be a single node" :(

You can try RefleX for performing your XInclusions where XPath is rather
well supported :
http://reflex.gforge.inria.fr/
Here is a basic example with XInclude :
http://reflex.gforge.inria.fr/tutor...l#dtdValidation

And the result of the test suite, for DOM and SAX (both are supporting
XPath)
http://reflex.gforge.inria.fr/tests-xinclude.html
Quote:
Originally Posted by
However, if(!) I'm understanding correctly, this would only xinclude
the *first* child of the element named 'foo'. Instead, I want to
xinclude *all* the children. I would have thought that this
<xi:include href="firstFileName" xpointer="foo/*"/>
would work, but it generates an error:
XPointer evaluation failed: #foo/*
All the variants of this that I've tried also fail.
>
How do I xinclude all children of the specified element?
>
Mike Maxwell
CASL/ U MD



--
Cordialement,

///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !

McSwell's Avatar
McSwell
Guest
n/a Posts
July 7th, 2008
03:35 PM
#3

Re: xinclude all children
On Jul 7, 5:23 am, Philippe Poulard <philippe.poular...@SPAMinria.fr>
wrote:
Quote:
Originally Posted by
If I don't make mistakes, try this :
<xi:include href="firstFileName" xpointer="xpointer(/foo/node())"/>


Thanks, this appears to be working now!

(I should have mentioned, I was using xmllint to verify the XML doc.)

Mike Maxwell
CASL/ U MD

 
Not the answer you were looking for? Post your question . . .
182,318 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).

  • Didn't find the answer you were looking for?
    Post Your Question
  • Top Community Contributors