簡體   English   中英

通過在標簽末尾添加“ /”來格式化XMl文檔

[英]Format XMl Document by adding “/” at the end of tag

因此,我有一些格式不正確的xml文檔,一些空的tags()末尾沒有“ /”,例如: <loader local="test.bat" dir="/usr/home">以及如何我可以為每一個“ loader”標簽“ /”添加優雅(使用正則表達式:)嗎(使用Java); 一定是:

 <loader local="test.jpg" dir="/usr/home"/>

我不確定通用XML文檔中是否存在可以執行此操作的正則表達式,但是如果您只想將它​​們轉換為有效xml,則可以使用tidy。

例如,其集成在記事本++中

TextFX-TextFx HTML Tidy-Tidy Reindent Xml

<abc>
    <loader local="test.jpg" dir="/usr/home"/>
</abc>

結果是

<abc>
  <loader local="test.jpg" dir="/usr/home" />
</abc>

這可能是您所期望的。 Tidy還可以像在記事本++中一樣集成到應用程序中

這可能沒有太大幫助,但我認為總體上可以節省時間

如果遇到此類問題,我要做的第一件事就是去找數據提供者並要求他們提供正確的文件。 如果他們說他們將提供xml,那么他們應該提供一個有效的文件,並且xml是一個明確定義的標准,很容易說該文件無效。

XML的主要優點之一是它是一種標准,您可以將它與許多經過良好測試和支持的工具一起使用。 如果該文件不是xml,則這是另一個未記錄的內容,每個人都必須花費時間來處理混亂。

僅當供應商無法解決該問題時,才進行編碼-但是供應商隨后未能履行他們的合同,這會影響您以后的處理方式。

通常的免責聲明:請注意, 正則表達式實際上並不是處理xml的最佳選擇 您在此處看到的幾乎所有正則表達式都將以某種形式存在缺陷,因此此答案中的正則表達式並非旨在放入任意代碼中,而是用於高度受控的使用。

這是一個可能的解決方案(例如,如果屬性中包含閉合尖括號,則該方法將無效)

xml.replaceAll("<loader\\b(.*?)>", "<loader$1/>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM