格式化XML
问题描述:
我有一个巨大的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>
答
我建议使用xmlstarlet的格式化功能。大量的XML可以通过调用xml fo
快速重新格式化或相当快速地打印。
+0
谢谢你的工作,我完全删除评论。使用它来删除版本和命名空间信息。 – sushma
但是XPATH可以很好地处理注释和命名空间。为什么要删除它们你考虑过XSLT去除它们,但是XSLT是基于XPATH的,所以你没有真正解决这个问题。 – tdelaney
配置单元中的xpath函数在命名空间和注释存在时不会提取标记值。可能是那个没有添加。 – sushma