XPATH document-function doesn't support absolute filepaths

Discussion in 'XML' started by Vitali Gontsharuk, Aug 17, 2005.

  1. Hallo!

    When using the XPATH document() function to load a new XML document, we
    are coming across problems, because XALAN seems to have problems with
    absolute paths. XALAN always assumes that the path is relative to the
    current directory. So if we e.g. are in "c:\xslt_scripts" and are trying
    to load an XML file from "c:\xml_files\test.xml" it ist trying to open a
    file with the following absolute path:
    "c:\xslt_scripts\c:\xml_files\test.xml".
    The weird thing however is that in some cases it works. Actually we
    configure which XML file is to be used in a Java-Bean config-file. When
    we just paste the full path to the current location of the XML file into
    the config file, it works, but when we construct the path using a
    place-holder (@xmlDir) which is further replaced with the actual
    Dir-path, it doesn't work, although the path to the XML file - displayed
    in the log of our application - is still the same.

    Has someone experienced this strange behaviour too?
    Any help appreciated!
    Vitali Gontsharuk
     
    Vitali Gontsharuk, Aug 17, 2005
    #1
    1. Advertising

  2. Vitali Gontsharuk wrote:


    > When using the XPATH document() function to load a new XML document,


    XPath 1.0 has no function named document, only XSLT 1.0 knows that function.

    > we
    > are coming across problems, because XALAN seems to have problems with
    > absolute paths. XALAN always assumes that the path is relative to the
    > current directory. So if we e.g. are in "c:\xslt_scripts" and are trying
    > to load an XML file from "c:\xml_files\test.xml" it ist trying to open a
    > file with the following absolute path:
    > "c:\xslt_scripts\c:\xml_files\test.xml".


    I don't know what Xalan does but usually the argument is treated as a
    URI reference and "c:\xml_files\test.xml" is not a URI so you would at
    least need
    file:///C:/xml_files/test.xml
    if you want to load from the file system.

    As for resolving relative URIs, the base URI used depends on the second
    argument to the document function, here is what the spec says about
    that: "The URI reference may be relative. The base URI (see [3.2 Base
    URI]) of the node in the second argument node-set that is first in
    document order is used as the base URI for resolving the relative URI
    into an absolute URI. If the second argument is omitted, then it
    defaults to the node in the stylesheet that contains the expression that
    includes the call to the document function."


    --

    Martin Honnen
    http://JavaScript.FAQTs.com/
     
    Martin Honnen, Aug 17, 2005
    #2
    1. Advertising

  3. Richard Tobin wrote:

    >In article <de5oeu$jhk$-muenchen.de>,
    >Vitali Gontsharuk <> wrote:
    >
    >
    >
    >>Actually I still have some problems understanding, how the function
    >>should be called if i need to load a document whose absolute path name
    >>is e.g. "C:\xml_files\test.xml":
    >>
    >>

    >
    >This one:
    >
    >
    >
    >>- document('file:///c:/xml_files/test.xml')?
    >>
    >>

    >
    >-- Richard
    >
    >

    Now I figured out what the problem was: within Java Xalan had been
    explicitly preconfigured with a specific directory as basepath - that's
    why even absolute file paths were considered as relative.
    But thanks for your answers!
     
    Vitali Gontsharuk, Aug 21, 2005
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Tomas
    Replies:
    5
    Views:
    13,741
    Roedy Green
    Sep 25, 2003
  2. Stef Mientki

    Double backslash in filepaths ?

    Stef Mientki, Apr 14, 2007, in forum: Python
    Replies:
    3
    Views:
    766
    Stef Mientki
    Apr 14, 2007
  3. Stef Mientki
    Replies:
    31
    Views:
    735
    Paul McNett
    Oct 24, 2008
  4. James Byrne
    Replies:
    3
    Views:
    565
    James Byrne
    Sep 14, 2010
  5. Math55

    Filepaths inside array and size?

    Math55, Aug 19, 2003, in forum: Perl Misc
    Replies:
    0
    Views:
    84
    Math55
    Aug 19, 2003
Loading...

Share This Page