gpt4 book ai didi

xml - 使用 Scriptella 将 XML 转换为 CSV,如何获取属性值?

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:39 26 4
gpt4 key购买 nike

我找到了一个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

现在是神奇的部分:- 您可以使用 Java 库作为替代方案,但由于开箱即用地支持这 2 个驱动程序,我建议使用它们- 您希望导入 xml -> 需要 xpath 驱动程序- 您希望导出 csv -> 需要 csv 驱动程序- 文本驱动程序也可用于输出 csv 数据,但您必须手动处理引号和分隔符

如果您的 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 测试。

关于xml - 使用 Scriptella 将 XML 转换为 CSV,如何获取属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35550822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com