我的示例XML
liste_images
我想提取"速度","代码"和" cvalue"当得分等于30时的所有条目。仅当得分为30时才出现cvalue,否则省略。目前我的代码是
- <Inrix responseId="123" statusText="" createdDate="2016-01-29T05:57:00Z">
- <SegmentSpeedResultSet coverage="255">
- <SegmentSpeedResults timestamp="2016-01-29T05:56:47Z">
- <score="10" speed="57" code="4814018">
<SubSegment speed="57" offset="0,1753"/>
</Segment>
- <score="30" speed="57" code="4814018" cvalue="57">
<SubSegment speed="57" offset="0,1753"/>
</Segment>
</SegmentSpeedResults>
</SegmentSpeedResultSet>
</Inrix>
这是创建XML节点集&#34;节点&#34;仅在得分为30时包含数据。看起来像这样
input <- xmlParse("20160128-235648.xml")
nodes <- getNodeSet(input,"//Segment[@score='30']")
但是,我无法将此XMLnodeset转换为值为&#34; code&#34;,&#34; cvalue&#34;,speed&#34;的数据帧。 [[4584]]
<Segment code="63365958" speed="41" score="30" c-value="0">
<SubSegment speed="41" offset="0,433"/>
</Segment>
attr(,"class")
[1] "XMLNodeSet"
从&#34;子段&#34;中提取空白矢量。而不是&#34;细分&#34;。
我还需要存储&#34;时间戳&#34;在&#34; SegmentSpeedResults&#34;作为一个单独的变量。
答案 0 :(得分:0)
与xAttrs一起解决我解决了在节点“Segment”下提取值的问题。这对我来说很好用
nodes <- getNodeSet(input,"//Segment[@score='30']")
all_parameters <- sapply(nodes, xmlAttrs)