2014-01-09 109 views
1

xmlstar遇到問題。 這是刪除空標籤,如何禁用它?XMLStarles刪除結束標記

輸入:

<tag1>test1</tag1> 
<tag3></tag3> 
<tag4>test3</tag4> 

輸出:

<tag1>test1</tag1> 
<tag3/> 
<tag4>test3</tag4> 

,我想同樣的輸出等是不是刪除收盤報價。

希望有人有一個快速的答案。

回答

2

在XML中,<a></a><a/>(注意/)在語義上是相同的。無論應用程序使用何種文檔都不應該關心這種變化。

我對xmlstarlet一無所知,但如果它的序列化程序沒有選項來生成更詳細的表單,則可能需要後處理文檔。

如果你絕對需要以前的版本,你有四個選擇:找到一個XML序列化器,它將寫出那個表單中的空元素(可能有或沒有你正在使用的選項),修改XML序列化器可以用這種形式寫出空的元素,編寫自己的XML序列化程序(不推薦;這不是很困難,但如果你問這個問題有詳細信息會給你帶來麻煩),或者寫出後對其進行後處理將<a></a>的所有實例更改爲<a/>

其實還有另外一種可能性。如果你的其他程序需要長格式的原因是因爲它期望HTML,你應該使用HTML序列化程序而不是XML序列化程序。

0

我知道這是一樣的。 但我需要的原因是應該蘆葦這個工具不支持這種格式的XML。它需要結束標籤。

所以我會從任何有想法的人感興趣到這裏。

關閉文件的標題是。 所以它挑剔地讀取文件的工具。

<?xml version="1.0" encoding="iso-8859-1"?> 

<project> 
    <fileVersion>2</fileVersion> 
    <configuration> 
    <name>Debug</name> 
    <toolchain> 
     <name>ARM</name> 
    </toolchain>