shell脚本解析xml文件,获取body内容
各位看官好,本人对shell脚本初出茅庐,有个问题想请教哈大家,麻烦大牛帮看看:
问题描述:
现在有个xml文件的数据,此xml里面有节点DATA_NAME,DATABODY里面的内容是我想要的数据,但每个DATABODY是分页了的,比如每10笔数据分为一页PAGE,我想要将所有PAGE的内容,输入到一个文本文件,名称DATA_NAME节点值。
举例:
文件名类似:99200000000_AMRGT_CONV_0000_20130427_I_0305_0001.xml
xml数据格式如下:
<?xml version="1.0" encoding="GB2312"?>
<DATAFILE>
<DATAHEAD>
<DATA_NAME>AMRGT_CONV</DATA_NAME>
<DATA_TYPE>I</DATA_TYPE>
<ROW_NUM>0000000013</ROW_NUM>
<PAGE_NUM>00000002</PAGE_NUM>
<FIELD_NUM>6</FIELD_NUM>
<FIELDS>
<FIELD ID='1'>INTER_ACCT</FIELD>
<FIELD ID='2'>ACCOUNT</FIELD>
<FIELD ID='3'>SUBACCT</FIELD>
<FIELD ID='4'>PACT_TERM</FIELD>
<FIELD ID='5'>DEFER_TERM</FIELD>
<FIELD ID='6'>CONTRACT</FIELD>
</FIELDS>
</DATAHEAD>
<DATABODY>
<PAGE PAGENO ='1' RECORDNUM='10'>
1029451|+|944002010000541249|+|999|+|12|+|0|+|31312|-|
996941|+|100870912250012222|+|999|+|12|+|0|+|888888888555555|-|
1029716|+|961009010000055621|+|999|+|12|+|0|+|qwwew|-|
1030582|+|961003010000132335|+|999|+|12|+|12|+|22222|-|
1029694|+|937006010000000001|+|999|+|3|+|0|+|742947974382977|-|
1029057|+|944001010000528906|+|999|+|3|+|0|+|11111111111111111111|-|
1030198|+|944000010000580009|+|999|+|3|+|0|+|11111111111111111111|-|
950152|+|100830440700010001|+|999|+|12|+|12|+|3456789|-|
1030578|+|961000010000118816|+|999|+|12|+|0|+|123456|-|
1030611|+|961005010000132341|+|999|+|12|+|0|+|11|-|
</PAGE>
<PAGE PAGENO ='2' RECORDNUM='3'>
1027383|+|144003010000412232|+|999|+|3|+|0|+|11111111111111111111|-|
8006634|+|961007010000675750|+|999|+|12|+|0|+|342343|-|
1031152|+|961004010000261315|+|999|+|6|+|6|+|56568383838385656|-|
</PAGE>
</DATABODY>
</DATAFILE>
最终想要的结果是:
文本文件名称:AMRGT_CONV.txt
文本内容:
1029451|+|944002010000541249|+|999|+|12|+|0|+|31312|-|
996941|+|100870912250012222|+|999|+|12|+|0|+|888888888555555|-|
1029716|+|961009010000055621|+|999|+|12|+|0|+|qwwew|-|
1030582|+|961003010000132335|+|999|+|12|+|12|+|22222|-|
1029694|+|937006010000000001|+|999|+|3|+|0|+|742947974382977|-|
1029057|+|944001010000528906|+|999|+|3|+|0|+|11111111111111111111|-|
1030198|+|944000010000580009|+|999|+|3|+|0|+|11111111111111111111|-|
950152|+|100830440700010001|+|999|+|12|+|12|+|3456789|-|
1030578|+|961000010000118816|+|999|+|12|+|0|+|123456|-|
1030611|+|961005010000132341|+|999|+|12|+|0|+|11|-|
1027383|+|144003010000412232|+|999|+|3|+|0|+|11111111111111111111|-|
8006634|+|961007010000675750|+|999|+|12|+|0|+|342343|-|
1031152|+|961004010000261315|+|999|+|6|+|6|+|56568383838385656|-|
请教哈大牛,怎么用shell脚本来获取我想要的内容?
麻烦各位了。。。
问题描述:
现在有个xml文件的数据,此xml里面有节点DATA_NAME,DATABODY里面的内容是我想要的数据,但每个DATABODY是分页了的,比如每10笔数据分为一页PAGE,我想要将所有PAGE的内容,输入到一个文本文件,名称DATA_NAME节点值。
举例:
文件名类似:99200000000_AMRGT_CONV_0000_20130427_I_0305_0001.xml
xml数据格式如下:
<?xml version="1.0" encoding="GB2312"?>
<DATAFILE>
<DATAHEAD>
<DATA_NAME>AMRGT_CONV</DATA_NAME>
<DATA_TYPE>I</DATA_TYPE>
<ROW_NUM>0000000013</ROW_NUM>
<PAGE_NUM>00000002</PAGE_NUM>
<FIELD_NUM>6</FIELD_NUM>
<FIELDS>
<FIELD ID='1'>INTER_ACCT</FIELD>
<FIELD ID='2'>ACCOUNT</FIELD>
<FIELD ID='3'>SUBACCT</FIELD>
<FIELD ID='4'>PACT_TERM</FIELD>
<FIELD ID='5'>DEFER_TERM</FIELD>
<FIELD ID='6'>CONTRACT</FIELD>
</FIELDS>
</DATAHEAD>
<DATABODY>
<PAGE PAGENO ='1' RECORDNUM='10'>
1029451|+|944002010000541249|+|999|+|12|+|0|+|31312|-|
996941|+|100870912250012222|+|999|+|12|+|0|+|888888888555555|-|
1029716|+|961009010000055621|+|999|+|12|+|0|+|qwwew|-|
1030582|+|961003010000132335|+|999|+|12|+|12|+|22222|-|
1029694|+|937006010000000001|+|999|+|3|+|0|+|742947974382977|-|
1029057|+|944001010000528906|+|999|+|3|+|0|+|11111111111111111111|-|
1030198|+|944000010000580009|+|999|+|3|+|0|+|11111111111111111111|-|
950152|+|100830440700010001|+|999|+|12|+|12|+|3456789|-|
1030578|+|961000010000118816|+|999|+|12|+|0|+|123456|-|
1030611|+|961005010000132341|+|999|+|12|+|0|+|11|-|
</PAGE>
<PAGE PAGENO ='2' RECORDNUM='3'>
1027383|+|144003010000412232|+|999|+|3|+|0|+|11111111111111111111|-|
8006634|+|961007010000675750|+|999|+|12|+|0|+|342343|-|
1031152|+|961004010000261315|+|999|+|6|+|6|+|56568383838385656|-|
</PAGE>
</DATABODY>
</DATAFILE>
最终想要的结果是:
文本文件名称:AMRGT_CONV.txt
文本内容:
1029451|+|944002010000541249|+|999|+|12|+|0|+|31312|-|
996941|+|100870912250012222|+|999|+|12|+|0|+|888888888555555|-|
1029716|+|961009010000055621|+|999|+|12|+|0|+|qwwew|-|
1030582|+|961003010000132335|+|999|+|12|+|12|+|22222|-|
1029694|+|937006010000000001|+|999|+|3|+|0|+|742947974382977|-|
1029057|+|944001010000528906|+|999|+|3|+|0|+|11111111111111111111|-|
1030198|+|944000010000580009|+|999|+|3|+|0|+|11111111111111111111|-|
950152|+|100830440700010001|+|999|+|12|+|12|+|3456789|-|
1030578|+|961000010000118816|+|999|+|12|+|0|+|123456|-|
1030611|+|961005010000132341|+|999|+|12|+|0|+|11|-|
1027383|+|144003010000412232|+|999|+|3|+|0|+|11111111111111111111|-|
8006634|+|961007010000675750|+|999|+|12|+|0|+|342343|-|
1031152|+|961004010000261315|+|999|+|6|+|6|+|56568383838385656|-|
请教哈大牛,怎么用shell脚本来获取我想要的内容?
麻烦各位了。。。
...全文
相关推荐
深入浅出 Greasemonkey优化
XML使用DOMParser解析XML文档:```javascriptconst parser = new DOMParser();const xmlDoc = parser.parseFromString
shell 解析xml
在提供的压缩文件中,`Readme-说明.htm`通常是介绍文件内容或使用方法的文档,可能会详细解释如何利用Shell脚本来解析XML。
利用Shell解析处理XML的方法汇总
在IT领域,尤其是在系统管理和自动化任务中,Shell脚本经常被用来处理各种任务,包括解析和操作XML数据。XML作为一种结构化的数据交换格式,广泛应用于配置文件、数据传输和存储等场景。
Java远程调用Shell脚本并获取输出信息【推荐】
Java远程调用Shell脚本并获取输出信息本文主要介绍了Java远程调用Shell脚本并获取输出信息的方法。
python编写shell脚本
### Python 编写 Shell 脚本:详细解析与实践#### 一、引言在日常工作中,Shell 脚本是一种非常实用的工具,它可以帮助我们自动化完成一系列任务,比如文件操作、数据处理等。


其他开发语言
