嗨,我想來縮小我的XML,XML:再壓縮我的XML
說,這是100個KBS的,所以我要來縮小它和少得多的一樣多,我可以,但不希望壓縮ZIP它。我試圖在一行中做出來,但它並沒有給它太大的區別,但是10%(大約) ,如果我可以使用xslt做它,但我不想使用java或c#或任何其他編程語言。 我希望我自己清楚,但如果仍有疑問,請在下面留言。
謝謝
P.S.我正在使用Eclipse IDE的所有代碼編寫
嗨,我想來縮小我的XML,XML:再壓縮我的XML
說,這是100個KBS的,所以我要來縮小它和少得多的一樣多,我可以,但不希望壓縮ZIP它。我試圖在一行中做出來,但它並沒有給它太大的區別,但是10%(大約) ,如果我可以使用xslt做它,但我不想使用java或c#或任何其他編程語言。 我希望我自己清楚,但如果仍有疑問,請在下面留言。
謝謝
P.S.我正在使用Eclipse IDE的所有代碼編寫
有幾種方法可以減少XML文件的大小。
例如,正確選擇的編碼。在UTF-32中,文件中的每個字符將佔用4個字節。採用UTF-8更好 - 然後所有特殊字符,如:<>";'=
將佔用一個字節。但在某些情況下,會有很多字符,即UTF-8將佔用3-6個字節。而UTF-16中的相同字符將佔用2個字節。所以你應該選擇最適合你的數據的編碼。
儘可能使用屬性而不是元素。比較結果字符串的長度:不是很長的前綴
<person><firstname>John</firstname><lastname>Smit</lastname></person>
<person firstname="John" lastname="Smit"/>
使用短命名空間前綴。對於最常用的數據,默認情況下使用名稱空間,沒有前綴。參見:
<longprefix:person xmlns:longprefix="www.example.com">
<longprefix:firstname>John</longprefix:firstname>
<longprefix:lastname>Smit</longprefix:lastname>
</longprefix:person>
<p:person xmlns:p="www.example.com">
<p:firstname>John</p:firstname>
<p:lastname>Smit</p:lastname>
</p:person>
請注意,名稱空間是相同的,因此對於解析器它們是相同的。
有時XML模式或DTD與數據一起存儲在XML文件中。如果你有很多類似的文件,模式存儲在每個文件中都是額外的開銷。您可以在一個單獨的文件中創建一個模式。
您可以將數據存儲在沒有默認值的xml文件中。這些值可以在閱讀時自動添加。例如
<person pet="dog">
<name>John</name>
</person>
<person>
<name>Mary</name>
</person>
你看到瑪麗的寵物嗎?但它在那裏!這是一個默認的貓。
<xs:element maxOccurs="unbounded" name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
</xs:sequence>
<xs:attribute name="pet" type="xs:string" default="cat" />
</xs:complexType>
</xs:element>
您應該刪除XML文件中的所有註釋。文件格式的說明可以單獨存儲。
對不起,我的英語不好。隨意編輯帖子。你可以根據自己的情況編寫自己的答案,用適當的語言重寫。 –
我的xml是非常動態的...我知道沒有什麼像非常動態,但它仍然是。它由服務器自行生成,因此沒有任何設置可以設置爲默認值。它只有一個命名空間,而且這個命名空間太短了......使用了agian和再次。可以作爲屬性添加的元素已經以這種方式轉換了我的xml。架構和dtd的一部分,我沒有得到.....這是如何與縮小有關 – NealGul
我不知道我明白「我想縮小它,但我不想壓縮它」。縮小和壓縮有什麼區別?如果不同之處在於您希望壓縮後的表單是保留原始結構和內容的XML,那麼您運氣不好:您可以擺脫的冗餘很少,同時仍然保持文檔在邏輯上等效良好 - 形成了XML。
您確定沒有語義縮減的範圍,即刪除收件人不感興趣的文檔部分嗎?
不,當我說我想縮小它但不壓縮它,這意味着我想縮小文件,但仍保持它在相同的格式(在我的情況下XML),並不希望它壓縮爲zip文件。 不,不好意思,但也沒有語義縮減的範圍 – NealGul
XML是否使用名稱空間?如果是這樣,你可以嘗試使用更短的名稱空間前綴。 –
是的,它確實....我不能刪除它們或可以使用任何其他命名空間或縮短它們 – NealGul
目前還不清楚你縮小(而不是壓縮)的意思。去除空白並減少10%可能非常接近極限。 – mzjn