[R] getNodeSet - what am I doing wrong?
Duncan Temple Lang
duncan at wald.ucdavis.edu
Tue Aug 31 14:09:14 CEST 2010
Johannes Graumann wrote:
> Thanks!
> but:
> > library(XML)
> > xmlDoc <- xmlTreeParse("http://www.unimod.org/xml/unimod_tables.xml")
You need to xmlParse() or xmlTreeParse(url, useInternalNodes = TRUE)
(which are equivalent) in order to be able to use getNodeSet().
The error you are getting is because you are using xmlTreeParse()
and the result is a tree represented in R rather than internal
C-level data structures on which getNodeSet() can operate.
xmlParse() is faster than xmlTreeParse()
and one can use XPath to query it.
D.
> > getNodeSet(xmlDoc,"//x:modifications_row", "x")
> Error in function (classes, fdef, mtable) :
> unable to find an inherited method for function "saveXML", for signature
> "XMLDocument"
>
> ?
>
> Thanks, Joh
>
>
> Duncan Temple Lang wrote:
>
> >
> > Hi Johannes
> >
> > This is a common issue. The document has a default XML namespace, e.g.
> > the root node is defined as
> >
> > <unimod xmlns="http://www.unimod.org/xmlns/schema/unimod_tables_1"...>
> > .....
> >
> > So you need to specify which namespace to match in the XPath expression
> > in getNodeSet(). The XML package provides a "convenient" facility for
> > this. You need only specify the prefix such as "x" and that will
> > be bound to the default namespace. You need to specify this in
> > two places - where you use it in the XPath expression and
> > in the namespaces argument of getNodeSet()
> >
> > So
> > getNodeSet(test, "//x:modifications_row", "x")
> >
> > gives you probably what you want.
> >
> > D.
> >
> >
> >
> > On 8/30/10 8:02 AM, Johannes Graumann wrote:
> >> library(XML)
> >>> test <- xmlTreeParse(
> >>> "http://www.unimod.org/xml/unimod_tables.xml",useInternalNodes=TRUE)
> >>> getNodeSet(test,"//modifications_row")
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
"There are men who can think no deeper than a fact" - Voltaire
Duncan Temple Lang duncan at wald.ucdavis.edu
Department of Statistics work: (530) 752-4782
4210 Mathematical Sciences Bldg. fax: (530) 752-7099
One Shields Ave.
University of California at Davis
Davis, CA 95616, USA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100831/454622f2/attachment.bin>
More information about the R-help
mailing list