Topic
  • 3 replies
  • Latest Post - ‏2011-04-29T09:27:43Z by SystemAdmin
SystemAdmin
SystemAdmin
1830 Posts

Pinned topic How to convert XML to csv file?

‏2011-04-27T17:38:39Z |
Hi

e.g. I want to convert the following XML to an csv file to be displayed in Excel. This is a feed from RQM, contains a list of test cases. I just want to list all test cases in Excel.

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Quality Manager: testcase feed</title>
<id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manager
/testcase/</id>
<link href="https://127.0.0.1:9444/jazz/secure/web/console/" rel="alternate"/>
<link rel="self"
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/?"/>
<entry xmlns="http://www.w3.org/2005/Atom"><title type="text">Add New Customer</title><summary
type="text"></summary><updated>2011-01-16T20:12:42.153Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/AddNewCustomer_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/AddNewCustomer_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
*ion=viewTestCase&amp;id=1" rel="enclosure" type="text/html" title="Web Console"></link></entry>*<entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Add New Products</title><summary
type="text"></summary><updated>2011-01-16T20:12:43.778Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/AddNewProduct_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/AddNewProduct_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=2" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Administer Orders</title><summary
type="text"></summary><updated>2011-01-16T20:12:44.653Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/AdministerOrders_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/AdministerOrders_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=3" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Existing Customer Order</title><summary
type="text"></summary><updated>2011-01-16T20:12:45.575Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/ExistingCustomerOrder_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/ExistingCustomerOrder_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=4" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Login2</title><summary type="text">Login
screen</summary><updated>2011-01-16T20:12:48.731Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.integr
ation.service.IIntegrationService/resources/Quality+Manager/testcase/Login2_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/Login2_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=5" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Login</title><summary type="text">Login
screen</summary><updated>2011-01-16T20:12:54.293Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.integr
ation.service.IIntegrationService/resources/Quality+Manager/testcase/Login_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/Login_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=6" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Logout2</title><summary
type="text"></summary><updated>2011-01-16T20:12:56.403Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/Logout2_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/Logout2_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=7" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Logout</title><summary
type="text"></summary><updated>2011-01-16T20:12:57.996Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/Logout_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/Logout_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=8" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">New Customer Order Test Case</title><summary
type="text"></summary><updated>2011-01-16T20:13:00.152Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/NewCustomerOrder_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/NewCustomerOrder_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=9" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Order Multiple CDs 2</title><summary
type="text"></summary><updated>2011-01-16T20:13:02.527Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/OrderMultipleCDs2_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/OrderMultipleCDs2_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=10" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Order Multiple CDs</title><summary
type="text"></summary><updated>2011-01-16T20:13:03.496Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/OrderMultipleCDs_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/OrderMultipleCDs_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=11" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Order Single CD2</title><summary type="text">Testing
ordering.</summary><updated>2011-01-16T20:13:04.949Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.int
egration.service.IIntegrationService/resources/Quality+Manager/testcase/OrderSingleCD2_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/OrderSingleCD2_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=12" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Order Single CD</title><summary type="text">Testing
ordering.</summary><updated>2011-01-16T20:13:05.761Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.int
egration.service.IIntegrationService/resources/Quality+Manager/testcase/OrderSingleCD_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/OrderSingleCD_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=13" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Remove Product</title><summary
type="text"></summary><updated>2011-01-16T20:13:06.527Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/RemoveProduct_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/RemoveProduct_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=14" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">New Customer Order Test Case (Sample)</title><summary
type="text">Test the ordering
functionality of the Classics Java
application.</summary><updated>2011-01-16T20:13:07.386Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/RQMNewCustomerOrder_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/RQMNewCustomerOrder_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=15" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">Update Existing Product</title><summary
type="text"></summary><updated>2011-01-16T20:13:08.980Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/UpdateExistingProduct_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/UpdateExistingProduct_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=17" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">View Order Status Test Case</title><summary
type="text"></summary><updated>2011-01-16T20:13:09.808Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/ViewOrderStatus_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/ViewOrderStatus_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=18" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">SimplifyTutorial</title><summary
type="text"></summary><updated>2011-02-03T22:09:02.470Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:19</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:19" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=19" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">DataDriveTutorial</title><summary
type="text"></summary><updated>2011-02-03T22:12:54.001Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:20</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:20" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=20" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">View Report Test Case</title><summary type="text">Test the admin
option to
view
report.</summary><updated>2011-02-06T20:08:03.937Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.integ
ration.service.IIntegrationService/resources/Quality+Manager/testcase/RQMViewReport_TC.xml</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/RQMViewReport_TC.xml" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=16" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">PlantsbyWebSphere Performance Test - Buy</title><summary
type="text"></summary><updated>2011-04-19T20:38:10.214Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:25</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:25" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=25" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">PlantsbyWebSphere Performance Test - Browse</title><summary
type="text"></summary><updated>2011-04-19T20:41:36.964Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:24</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:24" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=24" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">PlantsbyWebSphere Load Test - Schedule1</title><summary
type="text"></summary><updated>2011-04-20T14:07:55.274Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:26</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:26" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=26" rel="enclosure" type="text/html" title="Web Console"></link></entry><entry
xmlns="http://www.w3.org/2005/Atom"><title type="text">PlantsbyWebSphere Performance Test - BuySplit</title><summary
type="text"></summary><updated>2011-04-20T14:19:43.772Z</updated><id>https://localhost:9444/jazz/secure/service/com.ibm.rqm.
integration.service.IIntegrationService/resources/Quality+Manager/testcase/urn:com.ibm.rqm:testcase:27</id><link
href="https://localhost:9444/jazz/secure/service/com.ibm.rqm.integration.service.IIntegrationService/resources/Quality+Manag
er/testcase/urn:com.ibm.rqm:testcase:27" rel="alternate" type="application/xml"></link><link
href="https://127.0.0.1:9444/jazz/web/console/Quality%20Manager#action=com.ibm.rqm.planning.home.actionDispatcher&amp;subAct
ion=viewTestCase&amp;id=27" rel="enclosure" type="text/html" title="Web Console"></link></entry></feed>
Updated on 2011-04-29T09:27:43Z at 2011-04-29T09:27:43Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    1830 Posts

    Re: How to convert XML to csv file?

    ‏2011-04-28T04:52:47Z  
    >I just want to list all test cases in Excel.
    Very well. But list what data to which column?... Showing a feed is a good start, but it is still a very ambiguous question.
  • SystemAdmin
    SystemAdmin
    1830 Posts

    Re: How to convert XML to csv file?

    ‏2011-04-28T17:39:04Z  
    >I just want to list all test cases in Excel.
    Very well. But list what data to which column?... Showing a feed is a good start, but it is still a very ambiguous question.
    Just want to list those important fields (we can provide a list in a config file) and display the values in Excel, see attached is a sample provided by the tool (RQM) for importing. The tool doesn't provide export function.

    Thanks
    Jirong
  • SystemAdmin
    SystemAdmin
    1830 Posts

    Re: How to convert XML to csv file?

    ‏2011-04-29T09:27:43Z  
    Just want to list those important fields (we can provide a list in a config file) and display the values in Excel, see attached is a sample provided by the tool (RQM) for importing. The tool doesn't provide export function.

    Thanks
    Jirong
    Thanks for clarifying. Nevertheless, I am not sure what corresponds to important fields of the feed... Brief, I can pick a selection of "fields" to make the csv, namely the title, updated, id, href of first link (column link_1 below), and href of second link (column link_2 below). You may adapt according to the real need.

    From the feed posted, I detect some line-break and tab alignment that may or may not be an artifact of posting or in the real feed. In any case, that may not be appropriate (or it may, I don't know its concrete use such as carriage-return as line break inside excel cell etc...). In any case, a line break would break the csv, period. Hence, I provision a couple of lines to eliminate those artifacts.

    An xslt such as this will produce a csv per specifying above.
    
    <xsl:stylesheet version=
    "1.0" xmlns:xsl=
    "http://www.w3.org/1999/XSL/Transform" xmlns:atom=
    "http://www.w3.org/2005/Atom" > <xsl:output method=
    "text" omit-xml-declaration=
    "yes" encoding=
    "utf-8" /> <xsl:strip-space elements=
    "*" /> <xsl:template match=
    "/"> <xsl:text>title, updated, id, link[1], link[2]</xsl:text> <xsl:text>
    </xsl:text> <xsl:apply-templates select=
    "atom:feed/atom:entry" /> </xsl:template> <xsl:template match=
    "atom:entry"> <xsl:variable name=
    "title" select=
    "translate(normalize-space(atom:title),'&#x0d;&#x0a;&#09;','')" /> <xsl:variable name=
    "updated" select=
    "translate(normalize-space(atom:updated),'&#x0d;&#x0a;&#09;','')" /> <xsl:variable name=
    "id" select=
    "translate(normalize-space(atom:id),'&#x0d;&#x0a;&#09;','')" /> <xsl:variable name=
    "link_1" select=
    "translate(normalize-space(atom:link[1]/@href),'&#x0d;&#x0a;&#09;','')" /> <xsl:variable name=
    "link_2" select=
    "translate(normalize-space(atom:link[2]/@href),'&#x0d;&#x0a;&#09;','')" /> <xsl:value-of select=
    "concat($title, ', ', $updated, ', ', $id, ', ', $link_1, ', ', $link_2, '&#x0d;&#x0a;')" /> </xsl:template> </xsl:stylesheet>