提问人:G.Castells 提问时间:1/31/2023 更新时间:1/31/2023 访问量:59
在 R 中读取 XML 文件,获取不同元素的值,并通过属性节点的文本链接它们
Reading XML files in R, obtain values of different elements, and linking them by the text of attribute's node
问:
我正在尝试使用 R 导入和处理各种 XML 文件。每个 XML 文件可以包含来自不同个体的不同变量。我想确定与每个人相关的价值观。输出应为数据帧/表,其中每行都是一个单独的变量,每一列都是包含在 XML 中的变量。
例如,我有以下 XML 文件:
<DatosE xmlns:ns0="tmp" xmlns:ns1="aux">
<ns0:DatosE>
<ns0:Cap>
<ns0:Code>1000</ns0:Code>
<ns0:Year>2022</ns0:Year>
</ns0:Cap>
<ns1:DataBody>
<ns1:RealData>
<ns1:IndividualData identity="1" name="AAA">
<ns1:DataA>
<ns1:Label1>2300.32</ns1:Label1>
<ns1:Label2>5600.90</ns1:Label2>
<ns1:Label3>87</ns1:Label3>
</ns1:DataA>
<ns1:DataB>
<ns1:DataB2>
<ns1:Label4>4500.34</ns1:Label4>
<ns1:Label5>23.20</ns1:Label5>
<ns1:Label6>10000.50</ns1:Label6>
</ns1:DataB2>
</ns1:DataB>
</ns1:IndividualData>
<ns1:IndividualData identity="2" name="BBB">
<ns1:DataA>
<ns1:Label1>4560.24</ns1:Label1>
<ns1:Label2>896.30</ns1:Label2>
<ns1:Label3>790.3</ns1:Label3>
</ns1:DataA>
<ns1:DataB>
<ns1:DataB2>
<ns1:Label4>2004.78</ns1:Label4>
<ns1:Label7>890</ns1:Label7>
<ns1:Label8></ns1:Label8>
</ns1:DataB2>
</ns1:DataB>
</ns1:IndividualData>
</ns1:RealData>
</ns1:DataBody>
</ns0:DatosE>
我想获得的输出类似于这样:
识别 | 名字 | 标签1 | 标签2 | 标签5 | 标签6 | 标签7 | 标签8 |
---|---|---|---|---|---|---|---|
1 | AAA级 | 2300.32 | 5600.90 | 23.20 | 10000.50 | 那 | 那 |
2 | 血脑屏障 | 4560.24 | 896.30 | 那 | 那 | 890 | 0 |
我想读取 XML 节点中不同元素的不同值号。另外,我想根据值是谁来链接它们。每个人的标识都在“ns1:IndividualData”节点内的属性(标识和名称)中。
我尝试过使用“xmlToDataFrame”函数(XML 包),并使用 XPath synthaxis,但我不知道如何获取属性标识和名称的数字/文本......我可以读取我想要的节点的值,但不能以我想要链接不同数据的方式读取。
我尝试了以下功能:
xmlToDataFrame(nodes = getNodeSet(xmlParse("xmlGGG.xml"), "//ns1:DataA |
//ns1:DataB2", namespaces = xml_ns(read_xml("xmlGGG.xml"))))
我还研究了“xml2”包......但我的努力没有成功。
有谁知道我如何读取我的 XML 的不同节点/元素的不同值编号,并考虑到属性的文本元素链接所有这些值,而不是指示哪个个体? 谢谢。
答: 暂无答案
评论