bigben446 2022-03-05 19:19 采纳率: 85.7%
浏览 79
已结题

shell或者python脚本提取xml文件中信息

有一个xml文本test.xml,里面的主要信息内容是Hit,提取Hit信息中的两个tag内容,组成新的结果res.txt。希望脚本运行是这样的:bash xml-info.sh test.xml,或者python xml-info.py test.xml,自动生成res.txt结果。

hit信息基本组成单位,要想利用shell脚本或者python脚本提取xml文件里面的两个信息,Hit_accession和Hsp_hseq:

<Hit>
  <Hit_num>1</Hit_num>
  <Hit_id>gnl|SRA|SRR6675308.2504034.2</Hit_id>
  <Hit_def>2504034</Hit_def>
  <Hit_accession>SRR6675308.2504034.2</Hit_accession>
      <Hsp_align-len>50</Hsp_align-len>
      <Hsp_qseq>GFRKLPMGVGLSPFLLAQFTSSLASMVRRNFPHCMVFAYMDDVVLGAKSV</Hsp_qseq>
      <Hsp_hseq>GFRKIPMGVGLSPFLLAQFTSAICSVVRRAFPHCLAFSYMDDVVLGAKSV</Hsp_hseq>
      <Hsp_midline>GFRK+PMGVGLSPFLLAQFTS++ S+VRR FPHC+ F+YMDDVVLGAKSV</Hsp_midline>
    </Hsp>
  </Hit_hsps>
</Hit>

输出成为res.txt,格式如下,第一行Hit_accession,以>开头(不知道为啥帖子里面显示不出来,用“>”代替),第二行Hsp_hseq,直接是Hsp_hseq内容
“>”SRR6675308.2504034.2
GFRKIPMGVGLSPFLLAQFTSAICSVVRRAFPHCLAFSYMDDVVLGAKSV

测试文件test.xml

<?xml version="1.0"?>
<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">
    </Parameters>
  </BlastOutput_param>
<BlastOutput_iterations>
<Iteration>
  <Iteration_iter-num>1</Iteration_iter-num>
  <Iteration_query-len>838</Iteration_query-len>
<Iteration_hits>
<Hit>
  <Hit_num>1</Hit_num>
  <Hit_id>gnl|SRA|SRR6675308.2504034.2</Hit_id>
  <Hit_def>2504034</Hit_def>
  <Hit_accession>SRR6675308.2504034.2</Hit_accession>
  <Hit_len>150</Hit_len>
  <Hit_hsps>
    <Hsp>
      <Hsp_gaps>0</Hsp_gaps>
      <Hsp_align-len>50</Hsp_align-len>
      <Hsp_qseq>GFRKLPMGVGLSPFLLAQFTSSLASMVRRNFPHCMVFAYMDDVVLGAKSV</Hsp_qseq>
      <Hsp_hseq>GFRKIPMGVGLSPFLLAQFTSAICSVVRRAFPHCLAFSYMDDVVLGAKSV</Hsp_hseq>
      <Hsp_midline>GFRK+PMGVGLSPFLLAQFTS++ S+VRR FPHC+ F+YMDDVVLGAKSV</Hsp_midline>
    </Hsp>
  </Hit_hsps>
</Hit>
<Hit>
  <Hit_num>2</Hit_num>
  <Hit_id>gnl|SRA|SRR10821940.27046739.1</Hit_id>
  <Hit_def>27046739</Hit_def>
  <Hit_accession>SRR10821940.27046739.1</Hit_accession>
  <Hit_len>150</Hit_len>
  <Hit_hsps>
    <Hsp>
      <Hsp_num>1</Hsp_num>
      <Hsp_gaps>0</Hsp_gaps>
      <Hsp_align-len>50</Hsp_align-len>
      <Hsp_qseq>GFRKLPMGVGLSPFLLAQFTSSLASMVRRNFPHCMVFAYMDDVVLGAKSV</Hsp_qseq>
      <Hsp_hseq>GFRKIPMGVGLSPFLLAQFTSAICSVVRRAFPHCLAFSYMDDVVLGAKSV</Hsp_hseq>
      <Hsp_midline>GFRK+PMGVGLSPFLLAQFTS++ S+VRR FPHC+ F+YMDDVVLGAKSV</Hsp_midline>
    </Hsp>
  </Hit_hsps>
</Hit>
<Hit>
  <Hit_num>3</Hit_num>
  <Hit_id>gnl|SRA|SRR10821940.8209197.2</Hit_id>
  <Hit_def>8209197</Hit_def>
  <Hit_accession>SRR10821940.8209197.2</Hit_accession>
  <Hit_len>150</Hit_len>
  <Hit_hsps>
    <Hsp>
      <Hsp_query-frame>0</Hsp_query-frame>
      <Hsp_hit-frame>-1</Hsp_hit-frame>
      <Hsp_gaps>0</Hsp_gaps>
      <Hsp_align-len>50</Hsp_align-len>
      <Hsp_qseq>GFRKLPMGVGLSPFLLAQFTSSLASMVRRNFPHCMVFAYMDDVVLGAKSV</Hsp_qseq>
      <Hsp_hseq>GFRKIPMGVGLSPFLLAQFTSAICSVVRRAFPHCLAFSYMDDVVLGAKSV</Hsp_hseq>
      <Hsp_midline>GFRK+PMGVGLSPFLLAQFTS++ S+VRR FPHC+ F+YMDDVVLGAKSV</Hsp_midline>
    </Hsp>
  </Hit_hsps>
</Hit>
</Iteration_hits>
  <Iteration_stat>
    <Statistics>
      <Statistics_db-num>1266261802</Statistics_db-num>
      <Statistics_db-len>1968308817</Statistics_db-len>
    </Statistics>
  </Iteration_stat>
</Iteration>
</BlastOutput_iterations>
</BlastOutput>

  • 写回答

3条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 3月14日
      • 已采纳回答 3月6日
      • 赞助了问题酬金15元 3月5日
      • 修改了问题 3月5日
      • 展开全部

      悬赏问题

      • ¥15 如何增加获取淘宝的数据订单
      • ¥15 fluent计算后处理中如何把质量分数和摩尔分数转化为体积分数
      • ¥20 asn1c编码问题,懂asn1的人很简单
      • ¥60 在排球比赛中,排球落于界限上时,人工判断存在一定的主观因素。利用图像处理的方法来计算排球落点相对界限中心位置,判断结果。
      • ¥15 使用vs2019开发的动态链路库在win7环境下使用有问题
      • ¥30 quartus prime画电路图,要发源文件和电路图每个模块批注,源程序和仿真结果
      • ¥15 MFC滚动条如何正确使用
      • ¥15 缓冲区算法求面积,基于文献
      • ¥50 电路PCB原理图设计AD19
      • ¥15 openstack 云平台搭建 创建实例错误