代码之家  ›  专栏  ›  技术社区  ›  Valdas

PowerBuilder MSXML2.DOMDocument.4.0编码属性消失

  •  1
  • Valdas  · 技术社区  · 9 年前

    我有一个非常简单的PowerBuilder代码:

    OLEObject lole_DOM
    lole_DOM = CREATE OLEObject
    lole_DOM.ConnectToNewObject("MSXML2.DOMDocument.4.0")
    lole_DOM.LoadXML('<?xml version="1.0" encoding="UTF-8"?><root/>')
    MessageBox("", String(lole_DOM.XML))
    DESTROY lole_DOM
    

    我得到的结果是:

    <?xml version="1.0"?>
    <root/>
    

    编码属性去了哪里?不知道该怪谁,PowerBuilder还是MSXML2.DOMDocument.4.0,有什么想法吗?

    使用PowerBuilder版本11.5.1 Build 5097

    1 回复  |  直到 9 年前
        1
  •  1
  •   Seki    9 年前

    这是故意的。如 documentation for the xml property :

    这个 xml格式 属性始终返回Unicode字符串。也就是说 xml格式 的属性 DOMDocument 将文档从原始编码转换为Unicode。结果,原始编码属性被删除。例如 <?xml version="1.0" encoding="UTF-8"?> 出现在 xml格式 属性如下。

    <?xml version="1.0"?>
    

    相反,如果将文档保存到文件中 save() 您将看到文件中的处理指令已完成,文件也相应地进行了编码。