最近在用 AI 写一些脚本,遇到了一个奇怪的问题,大概是:
用 python 解析 sheets 表格,获取里面的 cell 数据,填到 xml 里。cell 内容是文本的,有各种形式的内容,例如 存文本,CDATA,xml tag 等。但是 xml
每次保存文本,都会自动转义。
我问 AI 怎么让 xml 保存时,不要自动转义。Grok 怎么都不理解我的上下文,一直让我用 CDATA。即使我说了,不要使用 CDATA。
我举例,
1 | 我需要更改 `<a><b>foo</b><a>`, foo 为 bar, |
grok 的方案一直不对。他没理解我的问题。一直提示 用CDATA,即使我说 CDATA 不是我要的答案,因为这个导致多了 <!CDATA>.
于是我换了 deepseek, deepseek 指出了问题的关键,
xml 在 保存 文本的时候会自动转义,如果不需要转义,需要 使用 xml element 处理,例如 <b>bar</b> 需要作为 xml element 保存,这样才不会被转义。
当我找到解决方案后,我开始反思,为什么 grok 没能给出正确的答案。我开始翻我的提问记录,我发现,我没提到 我保存的是文本。文本的内容 是各种格式的。这个导致 grok 一直往错误的方向找答案,而 deepseek 很聪明,通过 “转义问题”,找到了可能是 保存的格式 有问题,文本会被转义。想要不被转义,就需要根据内容,使用不同的格式.
为什么我在这个问题上掉坑了?
第一个,我缺少对 解析 xml的了解。找解决方案的时候,对关键技术的全面了解很重要
第二是,我提问缺少上下文。误导了 AI。错误的问题,缺少关键context的问题,都不是好问题