2014-02-07 50 views
0

我有一個XML文件中的數據,我需要以某種方式提取並顯示,以便我可以運行一些測試。格式化XML數據進行測試

XML中的數據是這個樣子

<is:Person> 
    <is:PersonId/> 
    <is:NationalIdentificationNumber/> 
    <is:Name> 
     <dg:Title/> 

我需要的是它顯示了這樣

is:Person/is:PersonID 
is:Person/is:NationalIdentificationNumber 
is:Person/is:Name/ 
is:Person/is:Name/dg:Title 

...

如何做任何想法這個?

+0

我不知道該怎麼嘗試 – user3285439

回答

0

您問題中的數據不是格式良好的XML。它缺乏結束標籤。

一旦結束標記的加入,您可以使用它xmlstarlet獲得結構:

$ xmlstarlet el [input file] 

輸出將被幾乎所有你已經在你的問題中所示的內容:

is:Person 
is:Person/is:PersonId 
is:Person/is:NationalIdentificationNumber 
is:Person/is:Name 
is:Person/is:Name/dg:Title 

它會抱怨isdg是未定義的命名空間。 XML不要求使用名稱空間,並且當不使用名稱空間時,XML驗證程序應該在元素名稱中接受冒號。但是,我不知道一個會使xmlstarlet不會抱怨的標誌。

+0

謝謝,但是你在哪裏添加了結束標記? – user3285439

+0

我已將「」附加到問題中顯示的XML上。您應該閱讀XML的基礎知識,因爲這非常基礎。 – Louis

+0

使用重定向:'xmlstarlet el [輸入文件]> [要存儲輸出文件的路徑]'。 – Louis