gpt4 book ai didi

xml - 如何处理 XML GENERATE 命令中的 xml 编码?

转载 作者:数据小太阳 更新时间:2023-10-29 02:33:35 25 4
gpt4 key购买 nike

我们面临的问题是,在 xml 消息中,带有 [· (0xB7)、Ý (0xDD)、¨(0xA8)] 等特殊字符的消息被拒绝,而实际上它们是 XML 有效字符。我们发现,当未指定时,对于分配给消息的默认编码,这些字符是无效字符。如果我们专门将编码类型添加到消息的顶部,我们就可以避免这种情况。我们使用了 UTF-8 编码。所以通过在 XML 的最开头添加“”消息,字符应成为有效字符。下面是cobol代码:

XML GENERATE RESPONSEDATA FROM ACCT  
COUNT IN RESPONSEDATALL
WITH ENCODING 1208
WITH XML-DECLARATION
END-XML

但是当我们看到生成的 xml 包含如下所示的字符时:

..Ì_%.ÎÁÊËÑ?>.......Á>Ä?ÀÑ>Å..UTF-8.... 

预期的输出是应该将以下编码位添加到 header 中。

<?xml version=“1.0” encoding=“utf-8”?>

所以问题是,当这个生成的 XML 在另一段代码中再次被解析时,它会遇到 XML-EXCEPTION 并返回一条异常消息。

问题是是否需要添加其他一些代码或编译选项才能使此 xml 有效?

最佳答案

这是完全正常的。

您正在将 XML 编码为 UTF-8,但是您是在大型机(EBCDIC)上查看 XML。当您的 ISPF 查看器打开您创建的 XML 文件时,它只是解释十六进制值并试图向您显示一些内容。因为这些值不符合 EBCDIC 字符集,所以看起来像垃圾。如果将该文件通过 FTP 传输到您的计算机,您将看到 XML 实际上就是您要查找的输出。

当您解析 XML 时,您实际上必须做一些类似的事情并指定在生成过程中使用的编码。下面的代码将解析一个 UTF-8 XML,并且在出现异常时,它将在 EBCDIC 中显示异常点之前的所有 XML,因此它在大型机 SYSOUT 中是可读的

XML PARSE WS-MY-XML
ENCODING 1208
PROCESSING PROCEDURE XXXX-PROCESS-XML
ON EXCEPTION
DISPLAY "EXCEPTION OCCURED: "
DISPLAY FUNCTION DISPLAY-OF (
FUNCTION NATIONAL-OF (
XML-TEXT 1208
)
1140
)
END-XML

编辑:话虽如此,您的 XML 中仍然可能存在合法错误,例如非法字符。如果我发布的代码也有效,请通过 FTP 传输 XML 并通过在线 XML 验证器运行它以查看错误所在。

关于xml - 如何处理 XML GENERATE 命令中的 xml 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44407048/

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