[R] XML - get node by name
Ajay ohri
ohri2007 at gmail.com
Sun Sep 7 17:38:18 CEST 2008
well not sure how its done in R , but heres a way to do it in simple Excel.
http://decisionstats.com/2008/parsing-xml-files-easily/
Parsing XML files easily
To parse a XML (or KML or PMML) file easily without using any
complicated softwares, here is a piece of code that fits right in your
excel sheet.
Just import this file using Excel, and then use the function
getElement, after pasting the XML code in 1 cell.
xml-getelement
It is used for simply reading the xml/kml code as a text string. Just
pasted all the xml code in one cell, and used the start ,end function
(for example start=<constraints> and end=</constraints> to get the
value of constraints in the xml code).
Simply read into the value in another cell using the getElement function.
heres the code if you ever need it.Just paste it into the VB editor of
Excel to create the GetElement function (if not there already) or
simply import the file in the link above.
Attribute VB_Name = "Module1″
Public Function getElement(xml As String, start As String, finish As String)
For i = 1 To Len(xml)
If Mid(xml, i, Len(start)) = start Then
For j = i + Len(start) To Len(xml)
If Mid(xml, j, Len(finish)) = finish Then
getElement = Mid(xml, i + Len(start), j - i - Len(start))
Exit Function
End If
Next j
End If
Next i
End Function
On Sun, Sep 7, 2008 at 1:52 PM, Antje <niederlein-rstat at yahoo.de> wrote:
>
> Hi there,
>
> I try to rewrite some Java-code with R. It deals with reading XML files. I started with the XML package. In Java, I had a very useful method which gave me a node by using:
>
> name of the node
> index of appearance
> start point: global (false) / local (true)
>
> So, I could do something like this.
>
> setCurrentChildNode("data", 0);
> getValueOfElement("val",1,true);
> --> gives 45
>
> setCurrentChildNode("data", 1);
> getValueOfElement("val",1,true);
> --> gives 11
>
> getValueOfElement("val",1,false);
> --> gives 45
>
> <root>
> <data loc="1">
> <val i="t1"> 22 </val>
> <val i="t2"> 45 </val>
> </data>
> <data loc="2">
> <val i="t1"> 44 </val>
> <val i="t2"> 11 </val>
> </data>
> </root>
>
> Now, I'd like to do something like this in R. Most important would be to retrieve a node just by its name, not by the whole path. How is it possible?
>
> Can anybody help me with this issue?
>
> Antje
>
> ______________________________________________
> 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.
--
Regards,
Ajay Ohri
http://tinyurl.com/liajayohri
More information about the R-help
mailing list