Ich habe einen HTML- und einen R-Code wie diese und muss jeden Knotenwert auf seine Eltern-ID in einem dat.frame beziehen. Es gibt verschiedene Informationen für jede Person.R: Wie erhalten Elternattribute und Knotenwerte zur Ortszeit?
example <- "<div class='person' id='1'>
<div class='phone'>555-5555</div>
<div class='email'>[email protected]</div>
</div>
<div class='person' id='2'>
<div class='phone'>123-4567</div>
<div class='email'>[email protected]</div>
</div>
<div class='person' id='3'>
<div class='phone'>987-6543</div>
<div class='age'>32</div>
<div class='city'>New York</div>
</div>"
doc = htmlTreeParse(example, useInternalNodes = T)
values <- xpathSApply(doc, "//*[@class='person']/div", xmlValue)
variables <- xpathSApply(doc, "//*[@class='person']/div", xmlGetAttr, 'class')
id <- xpathSApply(doc, "//*[@class='person']", xmlGetAttr, 'id')
# The problem: create a data.frame(id,variables,values)
Mit xpathSApply()
, kann ich Telefon, E-Mail und Alte Werte sowie Person Attribute (id) erhalten. Diese Informationen werden jedoch isoliert angezeigt, und ich muss sie auf die richtige dat.frame-Variable und die richtige Person verweisen. In meinen realen Daten gibt es viele verschiedene Informationen, so dass dieser Prozess der Benennung jeder Variable automatisch sein muss.
Mein Ziel ist es, ein data.frame wie dieses zu erstellen, das jede ID mit ihren richtigen Daten in Verbindung bringt.
id variables values
1 1 phone 555-5555
2 1 email [email protected]
3 2 phone 123-4567
4 2 email [email protected]
5 3 phone 987-6543
6 3 age 32
7 3 city New York
Ich glaube, ich würde eine Funktion erstellen, muß innerhalb xpathSApply
zu verwenden, die die Person, Telefon und die Person id zur gleichen Zeit bekommen würde, so würden sie in Beziehung gesetzt werden, aber ich habe keinen Erfolg gehabt mit dass bis jetzt.
Kann mir jemand helfen?