XQuery解析CSV示例
发布时间:2024-04-28 02:10:04 所属栏目:教程 来源:DaWei
导读: 如果希望将逗号分隔值(CSV)文本的文件解析为xml结构,或者有一个具有非常相似的行/字段结构的平面文件,希望将其转换为XML格式。
这里将使用tokenize($input, '\n')函数将输入文
这里将使用tokenize($input, '\n')函数将输入文
如果希望将逗号分隔值(CSV)文本的文件解析为xml结构,或者有一个具有非常相似的行/字段结构的平面文件,希望将其转换为XML格式。 这里将使用tokenize($input, '\n')函数将输入文件分成不同的行。 然后将使用tokenize($input, ',')函数将每一行解析为单独的字段。 请注意,tokenize()将删除前导和尾随空格。 基本例子 let $csv-input-sample := 'John, Smith, x123 Peg, Jones , x456 Sue, Adams , x789 Dan, McCoy , x321' let $lines := tokenize($csv-input-sample, '\n') return <results>{ for $line in $lines let $fields := tokenize($line, ',') return <row>{ for $field in $fields return <field>{$field}</field> }</row> }</results> 输出结果 - <results> <row> <field>John</field> <field>Smith</field> <field>x123</field> </row> <row> <field>Peg</field> <field>Jones</field> <field>x456</field> </row> <row> <field>Sue</field> <field>Adams</field> <field>x789</field> </row> <row> <field>Dan</field> <field>McCoy</field> <field>x321</field> </row> </results> 第1行中的数据字典示例 第二个示例将使用CSV文件的第一行作为每行每列的元素名称的数据字典。 let $csv := 'name,faculty alice,anthropology bob,biology' let $lines := tokenize($csv, '\n') let $head := tokenize($lines[1], ',') let $body := remove($lines, 1) return <people> { for $line in $body let $fields := tokenize($line, ',') return <person> { for $key at $pos in $head let $value := $fields[$pos] return element { $key } { $value } } </person> } </people> 输出结果如下 - <people> <person> <name>alice</name> <faculty>anthropology</faculty> </person> <person> <name>bob</name> <faculty>biology</faculty> </person> </people> (编辑:厦门网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐