2014-01-05 34 views
1

I'have一个xml亭-file.xml的样子说:[R XML xpathApply的TEI

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="parser.xsl" type="text/xsl"?> 
<TEI xmlns="http://www.tei-c.org/ns/1.0"> 
    <teiHeader> 
     <fileDesc> 
     </fileDesc> 
     <revisionDesc> 
     <change> 
      <name/> 
      <date/> 
     </change> 
     </revisionDesc> 
    </teiHeader> 
    <text> 
     <body> 
     <div><p><date when="1715-01-07">Du 7e Janvier.</date> Un ambassadeur extraordinaire du roi.</p></div> 
     <div><p><date when="1715-12">Dudit mois de décembre</date> Quelque temps avant la fin du mois</p></div> 
     </body> 
    </text> 
</TEI> 

我想获得的信息时= “1715- *” 硅我已经试过

library(XML) 
doc<-xmlParse("xml-tei-file.xml") 

> getNodeSet(doc, "//date[@when]") 
list() 
attr(,"class") 
[1] "XMLNodeSet" 

> unlist(xpathApply(doc, '//date', xmlValue)) 
NULL 

如何获得最新的节点?

回答

2

你接近,使用xmlGetAttr

unlist(xpathApply(doc, '//date', xmlGetAttr,"when")) 
[1] "1715-01-07" "1715-12" 
+0

>不公开(xpathApply(DOC, '//日期',xmlGetAttr, “何时”)) NULL – delaye

+0

我做什么了? – delaye

+0

我使用'htmlParse',因为你的xml格式不正确。尝试'doc < - htmlPasre(url)' – agstudy