【发布时间】:2012-09-13 14:42:41
【问题描述】:
我在一个 CSV 文件和一个包含复杂嵌套信息的 XML 文件中有一个大约 950 个整数的列表(每个条目都包含多个嵌套)。在 CSV 文件中给定一个整数 i,每个 i 对应于 XML 文件中的一个 i:i in <entry><key>i</key>。我想从 XML 文件中为 CSV 文件中列出的每个 i 提取一组预先指定的列。
以下是一组提取“列”的示例,因为缺少更好的词(目标被双星号包围):
<entry>
<key>55</key>
<cd language="**en**">
<title>**Ride The Lightning**</title>
<band>Metallica</band>
</cd>
<tabbook language="**en**">
<title>**Ride The Lightning Tab**</title>
<author>Who J. Ever</author>
</tabbook>
</entry>
我应该将 CSV 文件的值加载到脚本中的变量中,还是有现有的更好的方法来执行此操作?
编辑:
目前我正在尝试使用 BaseX。对于初学者查询,我正在尝试:for $e in collection("catalog")//entry where //entry/cd/title contains text "lightning" return //title,我认为它的意思是(或者更确切地说是希望的意思):对于一个以“条目”为标题的标签,它是“集合”中任何标签的后代 -标题目录,如果同一条目的“cd”标题后代的“标题”标题后代包含文本“闪电”,则将完整标题回显给我。
该死,这令人困惑....有人告诉我使用concat() 而不是return。查询似乎不正确。当我想出正确的语法时,我会继续学习并再次发布。
【问题讨论】:
-
我正在考虑将分隔符从
,更改为||或or,然后将整个字符串复制并粘贴到某种查询中......或者,使用类似的程序fxgrep?
标签: xml csv xml-parsing grep basex