This function is a convenience function for computing the fullly qualified URI of a document relative to a base URL. It handles the case where the document is already fully qualified and so ignores the base URL or, alternatively, is a relative document name and so prepends the base URL. It does not (yet) try to be clever by collapsing relative directories such as "..".
getRelativeURL(u, baseURL, sep = "/", addBase = TRUE, simplify = TRUE)
the location of the target document whose fully qualified URI is to be determined.
the base URL relative to which the value of u
should be interpreted.
the separator to use to separate elements of the path. For external URLs (e.g.
accessed via HTTP, HTTPS, FTP), / should be used. For local files on Windows machines
one might use .Platform$file.sep
, but this is incorrect unless one knows that the
resulting file is to be accessed using Windows file system notation, i.e.
C:\\my\\folder\\file
.
a logical controlling whether we prepend the base URL to the result.
a logical value that controls whether we attempt to
simplify/normalize the path to remove ..
and .
A character string giving the fully qualified URI for
u
.
This uses the function parseURI
to compute the components
of the different URIs.
parseURI
which uses the libxml2 facilities for parsing URIs.
xmlParse
, xmlTreeParse
, xmlInternalTreeParse
.
XInclude and XML Schema import/include elements for computing relative locations of included/imported files..
# NOT RUN {
getRelativeURL("http://www.omegahat.net", "http://www.r-project.org")
getRelativeURL("bar.html", "http://www.r-project.org/")
getRelativeURL("../bar.html", "http://www.r-project.org/")
# }
Run the code above in your browser using DataLab