2020-08-25 05:53发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
使用FTP_SERVER_TO_R3从FTP读取XML文件,在文本内容数据中获取#个字符
嗨。
似乎两个字符。
我建议您将g_t_xml_tab的内容放在xstring字段(cv_string)中。
之后 会在字符串字段(lv_xml_string)中转换此内容
最后创建您的文件。
希望对您有所帮助
呼叫方法cl_abap_conv_in_ce =>建立 出口 input = cv_string"(带有XML的Xstring变量) 接收 转换= lr_conv。 呼叫方法lr_conv->读取 输入 数据= lv_xml_string。 "(带有XML编码UTF-8的字符串变量) *使用UTF-8编码写入新文件 OPEN DATASET f_filen用于以文本模式输出的编码UTF-8忽略转换错误。 检查sy-subrc EQ 0。 将lv_xml_string传输到f_filen。 CLOSE DATASET f_filen。
为什么#不能为实际值? #而不是什么?
可能是您使用错误的代码页阅读的。 文件的原始代码页是什么? 您可以使用二进制模式+ BLOB读取文件,然后使用正确的代码页对文本进行解码...
我们看到的似乎是UTF-16LE编码(AKA代码页)。 首字符,但内容以UTF-8表示。 因此,也许现实是原始文件完全是UTF-8,而FTP_SERVER_TO_R3则将转换为您的SAP系统代码页(这将是UTF-16LE;请使用事务代码SNLS进行检查)。
因此,如果 您以二进制模式读取文件(因此这些字节将是UTF-8编码的文本;使用BLOB并将字节行连接到xstring变量中),然后将其从UTF-8转换为文本(参见Roberto答案,或者简单地 使用:
string = CL_ABAP_CODEPAGE => CONVERT_FROM(xstring)。"默认情况下为UTF-8
(如果您有7.53,则是最新的CL_ABAP_CONV_CODEPAGE)
桑德拉,你好
实际文件没有#字符,是从FTP服务器读取后得到的。
"ÿþ<#?#x#m#l##v#e#r#s#i#o#n#=#"#1#。#0#"##e#n#c#o #d#i#n#g#=#"#U#T#F#-#8#" <"
我试图直接在ABAP中使用FTP_SERVER_TO_R3字符模式从FTP读取XML文件,还尝试了BLOB但无法解码文本并且不能进行XML解析。
本地计算机上的同一文件运行正常。
请提出建议。
谢谢
HCG
我的代码
1。 使用HTTP_SCRAMBLE
2。 使用FTP_CONNECT
3。 使用FTP_COMMAND>在
4。 使用FTP_COMMAND> CD
5。 使用FTP_COMMAND> LS
6。 使用
呼叫功能'FTP_SERVER_TO_R3'导出句柄= w_hdl fname = w_path character_mode ='X' TABLES text = g_t_xml_tab 例外情况 tcpip_error = 1 command_error = 2 data_error = 3 其他= 4。
带有#字符的g_t_xml_tab和内容数据。 请提出建议。
嗨,我使用的代码与您相同,但是我根本无法读取xml文件(结果表为空)。 在您的情况下,w_path是" File_name.xml"吗?
最多设置5个标签!
嗨。
似乎两个字符。
我建议您将g_t_xml_tab的内容放在xstring字段(cv_string)中。
之后 会在字符串字段(lv_xml_string)中转换此内容
最后创建您的文件。
希望对您有所帮助
为什么#不能为实际值? #而不是什么?
可能是您使用错误的代码页阅读的。 文件的原始代码页是什么? 您可以使用二进制模式+ BLOB读取文件,然后使用正确的代码页对文本进行解码...
我们看到的似乎是UTF-16LE编码(AKA代码页)。 首字符,但内容以UTF-8表示。 因此,也许现实是原始文件完全是UTF-8,而FTP_SERVER_TO_R3则将转换为您的SAP系统代码页(这将是UTF-16LE;请使用事务代码SNLS进行检查)。
因此,如果 您以二进制模式读取文件(因此这些字节将是UTF-8编码的文本;使用BLOB并将字节行连接到xstring变量中),然后将其从UTF-8转换为文本(参见Roberto答案,或者简单地 使用:
(如果您有7.53,则是最新的CL_ABAP_CONV_CODEPAGE)
桑德拉,你好
实际文件没有#字符,是从FTP服务器读取后得到的。
"ÿþ<#?#x#m#l##v#e#r#s#i#o#n#=#"#1#。#0#"##e#n#c#o #d#i#n#g#=#"#U#T#F#-#8#" <"
我试图直接在ABAP中使用FTP_SERVER_TO_R3字符模式从FTP读取XML文件,还尝试了BLOB但无法解码文本并且不能进行XML解析。
本地计算机上的同一文件运行正常。
请提出建议。
谢谢
HCG
我的代码
1。 使用HTTP_SCRAMBLE
2。 使用FTP_CONNECT
3。 使用FTP_COMMAND>在
上设置为被动4。 使用FTP_COMMAND> CD
5。 使用FTP_COMMAND> LS
6。 使用
读取XML呼叫功能'FTP_SERVER_TO_R3'
导出
句柄= w_hdl
fname = w_path
character_mode ='X'
TABLES
text = g_t_xml_tab
例外情况
tcpip_error = 1
command_error = 2
data_error = 3
其他= 4。
带有#字符的g_t_xml_tab和内容数据。 请提出建议。
嗨,我使用的代码与您相同,但是我根本无法读取xml文件(结果表为空)。 在您的情况下,w_path是" File_name.xml"吗?
一周热门 更多>