gpt4 book ai didi

java - 使用字符串生成器将 XML 放入单个 csv/xls 列中不起作用

转载 作者:行者123 更新时间:2023-12-01 23:34:18 26 4
gpt4 key购买 nike

我在处理 XML 响应并将其格式化为 CSV 时遇到问题,然后可以将其作为 XLS 打开并在单个单元格中查看整个响应。我知道..这也不是我会做的,但他们得到了他们所要求的。

到目前为止,我已经尝试使用字符串生成器。这已经成功地将响应格式化为单行字符串,我已经通过将其写入文本文件并将其复制到 Eclipse 来测试这一点。当我在 XML 周围放置单引号时,它会变成一个字符串。

当尝试以单行格式获取相同的响应并将其粘贴到 csv 文件中时..csv 文件在 XML 字符串中以逗号分隔,并将响应放置在几十个单元格中。

    BufferedReader br = new BufferedReader(new FileReader(new File('responseXml.txt')));
String l;
StringBuilder sb = new StringBuilder();


while((l=br.readLine())!= null){sb.append(l.trim());
File respfile = new File("outresp.txt")
respfile.append(l)
println respfile.text
//verified single line string
respContents = new File("outresp.txt").text
}

File file = new File('outXML.csv')
file.append(respContents)
println file.text

// open csv still broke across many lines

我想要的是将单个 xml 字符串放入单个 xls 单元格中。

最佳答案

要将值放入 csv(excel)中的单列中,您有两种选择:

  1. 删除所有换行符 (\r\n) 和逗号 (,)
  2. 将每个双引号 (") 替换为两个双引号 (""),并用双引号包裹整个值。

第二个变体允许您将原始(多行)字符串格式保留在一个 Excel 单元格中。

这是第二种变体的代码:

//assume you have whole xml in responseXml variable
def responseXml = '''<?xml version="1.0"?>
<aaa text="hey, you">
<hello name="world"/>
</aaa>
'''

//take xml string in double quotes and escape all doublequotes
responseXml = '"'+ responseXml.replaceAll(/"/,'""') + '"'

def csv = new File('/11/1.csv')
csv.setText("col1,col2,xml\nfoo,bar") // emulate some existing file
csv.append(",${responseXml}\n")

结果:

enter image description here

关于java - 使用字符串生成器将 XML 放入单个 csv/xls 列中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58280694/

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