使用Scriptella将XML转换为CSV,如何获取属性值?
发布时间:2020-12-16 22:42:57 所属栏目:百科 来源:网络整理
导读:我找到了一个将 XML转换为CSV的示例,在使用的示例中,这个结构 !-- Demo input for ETL --CATALOG CD TITLEEmpire Burlesque/TITLE ARTISTBob Dylan/ARTIST COUNTRYUSA/COUNTRY COMPANYColumbia/COMPANY PRICE10.90/PRICE YEAR1985/YEAR /CD/CATALOG 在这个文
我找到了一个将
XML转换为CSV的示例,在使用的示例中,这个结构
<!-- Demo input for ETL --> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </CATALOG> 在这个文件结构中,Scriptella代码: <script connection-id="out">Title;Artist;Country;Company;Price;Year</script> <query connection-id="in"> <!--XPath which all CD elements in a catalog--> /CATALOG/CD <!--Outputs all matched elements--> <script connection-id="out" if="rownum>1">$TITLE;$ARTIST;$COUNTRY;$COMPANY;$PRICE;$YEAR</script> </script> 如何转换具有以下结构的XML文件 <CATALOG> <CD title='Empire Burlesque' artist='Bob Dylan' country='USA'/> ............. <CD title='Empire Burlesque' artist='Bob Dylan' country='USA'/> </CATALOG> 如何获取XML中的属性值? 解决方法
首先需要为所有连接正确描述驱动程序.除非使用xpath驱动程序,否则无法使用Scriptella解析XML.更多信息:
http://scriptella.org/reference/drivers.html
现在为神奇的位: 如果您的xml数据位于文件data.xml中,并且您希望将其作为文件data.csv中的csv数据导出,我建议使用以下scriptella etl脚本: <!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd"> <etl> <connection id="in" driver="xpath" url="data.xml" /> <connection id="out" driver="csv" url="data.csv"> quote= separator=; </connection> <script connection-id="out"> TITLE,ARTIST,COUNTRY,COMPANY,PRICE,YEAR </script> <query connection-id="in"> /CATALOG/CD <script connection-id="out"> $TITLE,$ARTIST,$COUNTRY,$COMPANY,$PRICE,$YEAR </script> </query> </etl> 请尊重XML源中使用的案例.你必须使用$TITLE而不是$title或$Title,因为< TITLE>存在于XML源中. 此类ETL任务不需要rownum测试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |