我正在使用Google Sheet阅读XML数据。 不幸的是,我正在努力正确地提取XML。 https://www.w3schools.com/xml/xpath_syntax.asp,SO和其他谷歌搜索的消息来源没有帮助。
处理下面的简化数据时
<item>
<profile_url>www.profile1.com</profile_url>
<answers>
<answers_item>
<answer>answer text 1.1</answer>
</answers_item>
<answers_item>
<answer>answer text 1.2</answer>
</answers_item>
</answers>
<item>
<item>
<profile_url>www.profile2.com</profile_url>
<answers>
<answers_item>
<answer>answer text 2.1</answer>
</answers_item>
<answers_item>
<answer>answer text 2.2</answer>
</answers_item>
</answers>
<item>
输出需要采用以下格式,因此电子表格中不需要额外的格式
www.profile1.com answer text 1.1 answer text 1.2
www.profile2.com answer text 2.1 answer text 2.2
变种试图并且未能给出正确的输出
"//profile_url //answers/answers_item/answer"
"//profile_url | //answers/answers_item/answer"
提前致谢 罗布
的修复程序1)使用字符串连接
string-join(//item/(concat(profile_url/text(), '.', answers/answers_item/answer//text())), " ")
发出以下错误(可能是因为使用的XPath不是2.0)
Imported Xml content can not be parsed.
2)使用
concat(//profile_url/text(), " ", //answers/answers_item/answer/text())
仅提供第一个条目。
答案 0 :(得分:0)
假设每个GET
中只有两个answers_item
,则以下xpath
item
应该提供所需的输出:
第一个concat(//item[1]/profile_url, " ", //item[1]/answers/answers_item[1]/answer, " " , //item[1]/answers/answers_item[2]/answer)
的 www.profile1.com answer text 1.1 answer text 1.2
对于第二个,您需要将item
修改为item[1]
如果您使用的是Java,这可以轻松完成。