如何使用bash或ksh解析XML(在一个巨大的字符串中)

时间:2014-05-13 08:37:59

标签: xml bash parsing ksh

对bash / ksh脚本有相当的经验,但对awk不太熟悉。我有一个谷歌,但还没有找到答案。这是问题所在。

我们获取XML文件,这些文件是一个巨大的字符串...客户要求我们提供细分,但这些文件中平均有1.2万笔交易,这不是一个手工工作。

我已尝试将IFS分隔符设置为例如,但它无法正常工作。 我也尝试将分隔符设置为'<'但这似乎也不好看。

那么,我如何用bash或ksh解析XML?我喜欢用开头标记分隔每条记录。或者简单地将每一个放在新的一行......

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用ksh / bash分割文件,如下所示:

    #!/usr/bin/ksh

    IFS="<"
    printf "<%s\n" `cat $1` 

然后上面的脚本将被用作以下(假设name是xmlparse.sh)

    ./xmlparse.sh $your_one_line_xml > ${your_one_line_xml}_new

您可能需要调整结果,例如删除第一行,或者您可以使用IFS值进行调整,以便您可以仅根据某些标记名称拆分文件。