如何格式化具有長屬性清單的 XML 檔案?

如何格式化具有長屬性清單的 XML 檔案?

我目前正在處理包含具有長屬性清單的元素的 XML 檔案。當我嘗試僅使用縮排的元素來重新縮排整個 XML 檔案時xmllint --format myfile.xml,屬性仍然保留在一行中。

是否有一些(命令列、Windows 或 GNU/Linux)程式支援重新格式化 XML(包括屬性)?

例如 XML 如下:

<root>
  <node attribute1="some long attribute value" attribute2="some long attribute value" attribute3="..."/>
</root>

輸出應類似:

<root>
  <node attribute1="some long attribute value"
        attribute2="some long attribute value"
        attribute3="..."/>
</root>

答案1

雖然您善意地搜尋「命令列工具」是完全可以的,但不幸的是,我認為解決此問題的任何真正可行的解決方案都將涉及您自己編寫一些程式碼,或者至少利用現有程式碼(例如XML解析器/發電機)。在評論中,發布了一些您可以嘗試的內容,這些內容可能會或可能不會為您提供您正在尋找的確切格式樣式。如果它確實很接近但不完全,那麼您最好的選擇可能是編輯“幾乎”到達那裡的程式的源代碼。當然,如果您不懂任何程式語言,那可能會有點僵局。

我稱所有這些解決方案都是“可能的”,因為即使它們按照您希望的方式格式化屬性,它們也可能會格式化某些內容別的在某種程度上你想要,然後你又回到第一個方塊了。由於您沒有說明完整的轉換要求,我只能猜測您可以接受其中哪一個,因此您只需逐一嘗試,直到您偶然發現可行的東西或自己創建它通過利用現有代碼並編寫一個小型程序。

無需編程的可能解決方案

圖形使用者介面

命令列

  • XMLTidy(最後更新於 2005 年;可能已過時)
  • 多姆4j(包含在這裡是因為「程式設計」已經在SO答案中完整地提供給您)

可能的程式解決方案

  • 使用以下之一編寫您自己的自訂程式:
  • 薛西斯
  • 多姆4j
  • 薩克斯風
  • 庫檔案
  • Eclipse 用於解析 XML 的底層函式庫,它可能允許您以程式設計方式格式化 XML 並設定自訂格式化規則,如您在 Eclipse 選項中看到的那樣

....它完全按照您想要的方式處理 XML。

也可以看看所以問題。

最後,請注意,如果您需要社區協助來深入研究編寫涉及其中一項技術的程序,您應該詢問特定於選擇 XML 解析器/生成器/庫堆疊溢位不是在超級用戶上。在這裡,我們主要處理有關現有程式使用的問題。

相關內容