2016-03-21 90 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