【发布时间】:2016-04-02 02:45:02
【问题描述】:
我今天开始用 R 编程,我想根据一个 xml 文件(使用库“XML”)获取一些值。
下面的 XML 是真实 XML 的简化版本。
<PDBx:datablock xmlns:PDBx="http://pdbml.pdb.org/schema/pdbx-v40.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" datablockName="1AEW" xsi:schemaLocation="http://pdbml.pdb.org/schema/pdbx-v40.xsd pdbx-v40.xsd">
<PDBx:atom_siteCategory>
<PDBx:atom_site id="1">
<PDBx:Cartn_x>22.250</PDBx:Cartn_x>
<PDBx:Cartn_y>-18.232</PDBx:Cartn_y>
<PDBx:Cartn_z>52.362</PDBx:Cartn_z>
<PDBx:label_atom_id>N</PDBx:label_atom_id>
</PDBx:atom_site>
<PDBx:atom_site id="2">
<PDBx:Cartn_x>22.188</PDBx:Cartn_x>
<PDBx:Cartn_y>-19.614</PDBx:Cartn_y>
<PDBx:Cartn_z>52.835</PDBx:Cartn_z>
<PDBx:label_atom_id>CA</PDBx:label_atom_id>
</PDBx:atom_site>
.
.
.
我需要提取的是在其“label_atom_id”节点内具有值“CA”的所有“atom_site”节点的 (x, y, z) 坐标。
我已经搜索过了,这就是我找到的:
nodes = getNodeSet(xmltop[[1]], "//atom_siteCategory/atom_site[@label_atom_id='CA']");
我使用xmltop[[1]] 是因为我想从“atom_siteCategory”节点进行搜索。这是包含所有“atom_site”节点的节点。
这个 XPATH 的问题是 atom_site[@label_atom_id='CA] 适用于节点属性,而不是节点值。
简而言之:
1)如何获取atom_site节点,"CA"作为label_atom_id的值。
(使用哪个 XPATH)
2) 如何从这些节点中提取 3 个坐标 (x,y,z)。 (如何用这个坐标填充data.frame)
【问题讨论】: