批量读取部分xml文件

时间:2012-10-19 14:41:38

标签: shell scripting batch-file command

我正在尝试创建批处理文件以从文件中提取数据并将其设置为变量。

棘手的部分是我需要读取XML文件,而我只需要以下行的引号之间的数据......

narrative="I only need this text here"

该行中的文本还可以包含空格,括号,斜杠,短划线和冒号。

示例XML文件

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <cadcall>
        <call callnumber="123456" jurisdiction="abcd" department="dept 1" complaint="cost" priority="M" calltencode="" callername="Persons Name" phonenumber="Cell Number HERE" narrative="[10/02/2012 14:56:27 : pos9 : PERSON] Fairly long narrative here describing issue of dispatch, but sometimes these can be short." alarmtype="" ocanumber="0000000000" disposition1="TRAN" />
    </cadcall>

2 个答案:

答案 0 :(得分:1)

执行此操作的正确工具是来自xmllint的{​​{1}},请提供更完整的XML示例,我将告诉您如何在{{1}上使用libxml请求}}

编辑

这里有一个使用Xpath的解决方案(带有一点hack:Xpath):

XML

答案 1 :(得分:0)

没有看到完整的输入,只是基于您的示例行。 grep适合你。

kent$  echo 'narrative="I only need this text here"'|grep -Po '(?<=narrative=")[^"]*'
I only need this text here