基于XML中同一节点内另一个属性的值,使用R编辑属性的现有值
我想解析以下XML。重复的属性名称使得我很难获得想要的输出 似乎解决这个问题的一个显而易见的方法是改变属性得分的值基于XML中同一节点内另一个属性的值,使用R编辑属性的现有值,r,xml,xml2,R,Xml,Xml2,我想解析以下XML。重复的属性名称使得我很难获得想要的输出 似乎解决这个问题的一个显而易见的方法是改变属性得分的值 <linescore score="129"> <quarter quarter="1" score="16"/> <quarter quarter="2" score="30"/> <quarter quarter="3" score="42"/> <
<linescore score="129">
<quarter quarter="1" score="16"/>
<quarter quarter="2" score="30"/>
<quarter quarter="3" score="42"/>
<quarter quarter="4" score="27"/>
<quarter quarter="5" score="9"/>
<quarter quarter="6" score="5"/>
你如何根据季度的价值来改变分数的价值?例如:
<linescore score="129">
<quarter quarter="1" score="16_1"/>
<quarter quarter="2" score="30_2"/>
<quarter quarter="3" score="42_3"/>
<quarter quarter="4" score="27_4"/>
<quarter quarter="5" score="9_5"/>
<quarter quarter="6" score="5_6"/>
我尝试过使用xml\u replace
,但没有成功。这里有一种方法:
library(xml2)
library(purrr)
xml <- read_xml('
<linescore score="129">
<quarter quarter="1" score="16"/>
<quarter quarter="2" score="30"/>
<quarter quarter="3" score="42"/>
<quarter quarter="4" score="27"/>
<quarter quarter="5" score="9"/>
<quarter quarter="6" score="5"/>
</linescore>')
xml %>%
xml_find_all("/linescore/quarter") %>%
walk(~xml_set_attr(.x, "score", paste(xml_attrs(.x)[c("score", "quarter")], collapse ="_")))
xml
# xml_document}
# <linescore score="129">
# [1] <quarter quarter="1" score="16_1"/>
# [2] <quarter quarter="2" score="30_2"/>
# [3] <quarter quarter="3" score="42_3"/>
# [4] <quarter quarter="4" score="27_4"/>
# [5] <quarter quarter="5" score="9_5"/>
# [6] <quarter quarter="6" score="5_6"/>
库(xml2)
图书馆(purrr)
xml%
xml\u find\u all(“/linescore/quarter”)%>%
walk(~xml_set_attr(.x,“score”,粘贴(xml_attrs(.x)[c(“score”,“quarter”)],collapse=“”))
xml
#xml_文档}
#
# [1]
# [2]
# [3]
# [4]
# [5]
# [6]
显示尝试的代码。显示完整的XML(尤其是标题)。显示当前不期望的结果。