2012-12-03 52 views
0

我有下面的查詢返回xml的一行中的所有內容,有沒有辦法讓可讀格式的outpup?像下面的示例一樣。可讀格式的xml輸出

SELECT XMLELEMENT("rss", 
      XMLATTRIBUTES('http://www.georss.org/georss' AS "xmlns:georss"), 
        XMLELEMENT("channel", 
           XMLAGG(XMLELEMENT("item", 
                XMLFOREST(title AS "title", 
                   description AS "description", 
                   point AS "georss:point"))))).EXTRACT('/*') 
    FROM (SELECT trim(s.sitedesc) AS title, 
      'Employee Count: ' || s.sitefte || '<br /> Bldg Gross SF: ' || s.bldgarea || '<br />' || CASE WHEN s.leasestat = '0' THEN 'Owned' WHEN s.leasestat = '1' THEN 'Leased, end date: ' || trim(l.edate) END || '<br /><a href="../scripts/fmiinfo.asp?file_code=_BLDGLIST&sitecode='||trim(s.sitecode)||'&forceDB=">'||'More Details'||'</a> <br />' AS description, 
      trim(s.latitude) || ' ' || trim(s.longitude) AS point 
      FROM ls s 
      LEFT OUTER JOIN c0 l ON l.sitecode = s.sitecode 
      WHERE s.sold <> 1 
      AND s.longitude != ' ' 
     ) 
; 

回報

<rss xmlns:georss="http://www.georss.org/georss"><channel><item><title>TITLE</title><description>DESCRIPTION<description><georss:point>LAT LON</georss:point></item> ... </channel></rss> 

而是使之更易於閱讀想輸出接近這個:

<rss xmlns:georss="http://www.georss.org/georss"> 
<channel> 
    <item> 
     <title>TITLE</title> 
     <description>DESCRIPTION</description> 
     <georss:point>LAT LON</georss:point> 
    </item> 
... 
</channel> 
</rss> 

回答

0

你可以用一個小的shell腳本添加的回報,這樣的:

#!/bin/sh 
# Usage: ./addreturns.sh foobar.xml. 

file=$1 

cat $file | perl -pe 's|(<\/.*?>)|\1\n|g' | perl -pe 's|><|>\n<|g' > /tmp/newlines.xml; mv /tmp/newlines.xml $file