我有一个CSV文件中大约950个整数的列表和一个包含复杂嵌套信息的XML文件(每个条目包含多个嵌套)。给定CSV文件中的整数i
,每个i
对应于XML文件中的i
:i
中的<entry><key>i</key>
。我想从CSV文件中列出的每个i
的XML文件中提取一组预先指定的列。
以下是一组提取“列”的示例,因为没有更好的单词(目标被双星号包围):
<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
,我认为(或者更确切地说是希望意味着):用于“条目”标题标签,它是“集合”中任何标签的后代“-titled catalog,如果同一个条目的”cd“-titled descendant的”title“-titled descendant包含文本”lightning“,则回显给我完整的标题。
该死,这令人困惑......我被告知使用concat()
而不是return
。查询似乎不正确。当我提出正确的语法时,我会继续学习并再次发帖。
答案 0 :(得分:0)
使用XPath(至少使用XPath2),您可以使用像
这样的查询 //entry[key = (1,2,3,4,5)]
在(1,2,3,4,5)中找到所有带密钥的条目。
然后只需将您的CSV粘贴在括号中