如何在xml中返回特定信息?

时间:2016-09-28 17:57:17

标签: xml grep

我在文件夹中有一堆.xml文件,我想从中提取特定信息。我打算在命令行中使用grep

这是我的示例

的xml文件的一部分
   <component>
  <structuredBody>
     <component>
        <section>
           <id root="d38bc14a-d64c-4a8f-a917-459725918ede"/>
           <code code="48780-1" displayName="SPL LISTING DATA ELEMENTS SECTION" codeSystem="2.16.840.1.113883.6.1"/>
           <effectiveTime value="20160629"/>
           <subject>
              <manufacturedProduct>
                 <manufacturedProduct>
                    <code code="68196-157" codeSystem="2.16.840.1.113883.6.69"/>
                    <name>Aspirin<suffix>regular strength</suffix>
                    </name>
                    <formCode code="C42998" **displayName="TABLET"** codeSystem="2.16.840.1.113883.3.26.1.1"/>
                    <asEntityWithGeneric>
                       <genericMedicine>
                          **<name>aspirin</name>**
                       </genericMedicine>
                    </asEntityWithGeneric>
                    <ingredient classCode="ACTIB">
                       <quantity>
                          <numerator unit="mg" value="325"/>
                          <denominator unit="1" value="1"/>
                       </quantity>
                       <ingredientSubstance>
                          <code code="R16CO5Y76E" codeSystem="2.16.840.1.113883.4.9"/>
                          <name>ASPIRIN</name>
                          <activeMoiety>
                             <activeMoiety>
                                <code code="R16CO5Y76E" codeSystem="2.16.840.1.113883.4.9"/>

我想在formCode中显示displayName =“Tablet”(第14行)和&lt;名称&gt;阿司匹林&lt; / name&gt;之后&lt; genericMedicine&gt; (第17行)。 这是我的代码

grep -A 10 "subject" *.xml | grep -e "formCode" -e "genericMedicine"  > output 

但结果证明&lt;名称&gt;阿司匹林&lt; / name&gt;未示出,并且&lt; / genericMedicine&gt;显示。我怎样才能得到displayName =“tablet”和aspirin?

0 个答案:

没有答案