{"id":22495,"date":"2024-10-22T04:24:53","date_gmt":"2024-10-22T04:24:53","guid":{"rendered":"http:\/\/www.withdata.com\/blog\/?p=22495"},"modified":"2024-10-22T04:24:53","modified_gmt":"2024-10-22T04:24:53","slug":"convert-xml-attributes-to-csv-columns","status":"publish","type":"post","link":"https:\/\/www.withdata.com\/blog\/use\/convert-xml-attributes-to-csv-columns.html","title":{"rendered":"Convert XML attributes to CSV columns"},"content":{"rendered":"<p>I see a post <a href=\"https:\/\/stackoverflow.com\/questions\/70215320\/how-to-convert-xml-into-csv-using-xsl\">How to convert XML into CSV using XSL<\/a>, the poster has a test XML like this:<\/p>\n<pre>&lt;Tester author=\"Name\" id=\"16384543\"&gt;\r\n  &lt;insert tableName=\"sampletable\"&gt;\r\n    &lt;column name=\"id\" valueNumeric=\"2\"\/&gt;\r\n    &lt;column name=\"name\" value=\"kathy\"\/&gt;\r\n    &lt;column name=\"active\" valueBoolean=\"true\"\/&gt;\r\n    &lt;column name=\"age\" valueNumeric=\"2\"\/&gt;\r\n  &lt;\/insert&gt;\r\n  &lt;insert tableName=\"sampletable\"&gt;\r\n    &lt;column name=\"id\" valueNumeric=\"23\"\/&gt;\r\n    &lt;column name=\"name\" value=\"Queen\"\/&gt;\r\n    &lt;column name=\"active\" valueBoolean=\"true\"\/&gt;\r\n    &lt;column name=\"age\" valueNumeric=\"29\"\/&gt;\r\n  &lt;\/insert&gt;\r\n  &lt;insert tableName=\"sampletable\"&gt;\r\n    &lt;column name=\"id\" valueNumeric=\"25\"\/&gt;\r\n    &lt;column name=\"name\" value=\"varshan\"\/&gt;\r\n    &lt;column name=\"active\" valueBoolean=\"false\"\/&gt;\r\n    &lt;column name=\"age\" valueNumeric=\"5\"\/&gt;\r\n  &lt;\/insert&gt;\r\n&lt;\/Tester&gt;\r\n<\/pre>\n<p>He want to convert it to CSV like this:<\/p>\n<pre>id,name,active,age\r\n2,kathy,TRUE,2\r\n23,Queen,TRUE,29\r\n25,varshan,FALSE,5\r\n<\/pre>\n<p>So the XML attributes need to be converted CSV columns. I used <a href=\"https:\/\/www.withdata.com\/data-file-converter\/\">Data File Converter<\/a>, figured out converting this XML, in a minute.<\/p>\n<p>1. Open XML in DataFileConverter, set XML options.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.withdata.com\/images\/case\/convert-xml-attributes-to-csv-columns-source.png\" alt=\"Convert XML attributes to CSV columns - open XML\" width=\"722\" height=\"572\" style=\"max-width:100%;height:auto;display:block;\" \/><\/p>\n<p>2. Set XML custom columns, map XML attributes to columns.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.withdata.com\/images\/case\/convert-xml-attributes-to-csv-columns-custom.png\" alt=\"Convert XML attributes to CSV columns - map XML attributes\" width=\"602\" height=\"465\" style=\"max-width:100%;height:auto;display:block;\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.withdata.com\/images\/case\/convert-xml-attributes-to-csv-columns-after.png\" alt=\"Convert XML attributes to CSV columns - show custom columns\" width=\"722\" height=\"572\" style=\"max-width:100%;height:auto;display:block;\" loading=\"lazy\" decoding=\"async\" \/><\/p>\n<p>3. Set CSV options.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.withdata.com\/images\/case\/convert-xml-attributes-to-csv-columns-csv.png\" alt=\"Convert XML attributes to CSV columns - set CSV\" width=\"722\" height=\"572\" style=\"max-width:100%;height:auto;display:block;\" loading=\"lazy\" decoding=\"async\" \/><\/p>\n<p>4. &#8220;Next&#8221; and &#8220;Next&#8221;, convert, get the output CSV file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I see a post How to convert XML into CSV using XSL, the poster has a test XML like this: &lt;Tester author=&#8221;Name&#8221; id=&#8221;16384543&#8243;&gt; &lt;insert tableName=&#8221;sampletable&#8221;&gt; &lt;column name=&#8221;id&#8221; valueNumeric=&#8221;2&#8243;\/&gt; &lt;column name=&#8221;name&#8221; value=&#8221;kathy&#8221;\/&gt; &lt;column name=&#8221;active&#8221; valueBoolean=&#8221;true&#8221;\/&gt; &lt;column name=&#8221;age&#8221; valueNumeric=&#8221;2&#8243;\/&gt; &lt;\/insert&gt; &lt;insert tableName=&#8221;sampletable&#8221;&gt; &lt;column name=&#8221;id&#8221; valueNumeric=&#8221;23&#8243;\/&gt; &lt;column name=&#8221;name&#8221; value=&#8221;Queen&#8221;\/&gt; &lt;column name=&#8221;active&#8221; valueBoolean=&#8221;true&#8221;\/&gt; &lt;column name=&#8221;age&#8221; valueNumeric=&#8221;29&#8243;\/&gt; &lt;\/insert&gt; &lt;insert tableName=&#8221;sampletable&#8221;&gt; [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3141],"tags":[34,68,1491],"class_list":["post-22495","post","type-post","status-publish","format-standard","hentry","category-use","tag-csv","tag-xml","tag-xml-to-csv"],"_links":{"self":[{"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/posts\/22495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/comments?post=22495"}],"version-history":[{"count":2,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/posts\/22495\/revisions"}],"predecessor-version":[{"id":22497,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/posts\/22495\/revisions\/22497"}],"wp:attachment":[{"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/media?parent=22495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/categories?post=22495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.withdata.com\/blog\/wp-json\/wp\/v2\/tags?post=22495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}