2016-03-21 124 views
-1

我有一个巨大的XML,我将不得不每天使用xpath在配置单元中处理。 由于xpath不适用于注释和命名空间,因此我正在寻找一个bash/python脚本来删除它。格式化XML

标签数量和注释行数量不会每天都在不变,因此我无法使用恒定标识xslt。整洁也不存在,所以这不适合我。

任何有关使用bash或python解析的指导都会有所帮助。

示例XML

<?xml version="1.0" encoding="utf-8"?> 

<tag1 xmlns:xsi="--dummy--" xmlns="--dummy---"> 

<tag2> 

<!-- Default Codec Profile --> 

    <configitem name="att1" type="string">attval</configitem> 
</tag2> 

+2

但是XPATH可以很好地处理注释和命名空间。为什么要删除它们你考虑过XSLT去除它们,但是XSLT是基于XPATH的,所以你没有真正解决这个问题。 – tdelaney

+0

配置单元中的xpath函数在命名空间和注释存在时不会提取标记值。可能是那个没有添加。 – sushma

回答

1

我建议使用xmlstarlet的格式化功能。大量的XML可以通过调用xml fo快速重新格式化或相当快速地打印。

+0

谢谢你的工作,我完全删除评论。使用它来删除版本和命名空间信息。 – sushma