我想做的是从XML转换到XML和
保持<variant_effect>
处于当前状态。我永远不会知道如何
给定<feature>
的许多“效果”可以让每个孩子都有
0 ... n效果属性。我不确定最好/最简单的方法。
给定XML布局,每个文档中都有多个功能。
<feature>
<seqid>12</seqid>
<source>HGMD</source>
<type>substitution</type>
<start>9232268</start>
<end>9232268</end>
<score>.</score>
<strand>+</strand>
<id>HGMD_SNV_000001</id>
<alias>HGVS:NM_000014.4:c.2998G-A,HGVS:NP_000005.2:p.V1000I</alias>
<variant_seq>A</variant_seq>
<reference_seq>T</reference_seq>
<variant_effect>
<feature_id effect="1">A2M</feature_id>
<index effect="1">0</index>
<sequence_variant effect="1">gene_variant</sequence_variant>
<feature_type effect="1">gene</feature_type>
<feature_id effect="2">CM980001</feature_id>
<index effect="2">0</index>
<sequence_variant effect="2">transcript_variant</sequence_variant>
<feature_type effect="2">transcript</feature_type>
<feature_id effect="3">CM980001</feature_id>
<index effect="3">0</index>
<sequence_variant effect="3">coding_sequence_variant</sequence_variant>
<feature_type effect="3">mRNA</feature_type>
</variant_effect>
<sequence_context>CTAAATGAAACACAGCAGCTTACTCCAGAG,TCAAGTCCAAGGCCATTGGCTATCTCAACA</sequence_context>
</feature>
使用XSLT将所有标记移动到新的XML文档是
直截了当,<variant_effect>
除外。我用的时候
<xsl:for-each>
以不同的方式表达,我要么只得到一个
单节:
<feature>
<!-other values -->
<variant_effect>
<feature_id>A2M</feature_id>
<index effect>0</index>
<sequence_variant>gene_variant</sequence_variant>
<feature_type>gene</feature_type>
</variant_effect>
</feature>
或者将整个文件中的所有variant_effect作为每个<feature>
部分中的一个长转储。
我尝试过的一种方法示例:
<xsl:template match="/">
<xsl:for-each select="GVFClin/feature">
<!- dealing with each sections first -->
<variant_effect>
<xsl:for-each select="/GVFClin/feature/variant_effect/sequence_variant">
<xsl:value-of select="/GVFClin/feature/variant_effect/sequence_variant"/>
</xsl:for-each>
</variant_effect>
</xsl:for-each>
</xsl:template>
猜猜我不确定如何跟踪每个元素并打印出仅针对给定节点的所有<variant_effect>
“效果”。
任何对类似问题的帮助或引用已经很好,谢谢!