我想實現一個協議,我將用它來與應用程序進行通信。問題是服務器使用XML,所以我試圖發送一個字符串到包含xml的服務器,但我只得到錯誤。XML和Delphi問題
當我發送此:
mymsg: String = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
'<m:outgoingEngineMessage xmlns:c="http://www.bvb.ro/xml/ns/arena/gw/constraints"'+
'xmlns:m="http://www.bvb.ro/xml/ns/arena/gw/msg"'+
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+
'<content xsi:type="HeartBeatcmd">'+
'</content>'+
'<csq>100212</csq>'+
'</m:outgoingEngineMessage>';
我收到一條錯誤消息:
元素類型 「M:outgoingEngineMessage」 必須跟任 屬性規格, 「& gt;」 中或「/ & gt」;
當我發送此:
mymsg : String = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
'<m:outgoingEngineMessage xmlns:c="http://www.bvb.ro/xml/ns/arena/gw/constraints"'+
'xmlns:m="http://www.bvb.ro/xml/ns/arena/gw/msg"'+
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'+
'<content xsi:type="HeartBeatcmd">'+
'</content>'+
'<csq>100212</csq>'+
'</m:outgoingEngineMessage>'
我得到:元素不允許在序言...
有人可以告訴我什麼,我做錯了什麼?我以前從未使用過xml文件。有沒有一個函數可以正確地將xml轉換爲utf8?請解釋。
如果你在網上搜索例如具有「xmlns:xsi」的文檔,很容易看到他們使用像'xmlns:xsi =「...'而不是'xmlns:xsi =&quot;'這樣的引號,並且其他明顯的差異,如關閉''標記佛r根元素。在你的例子中,終止的 m:outgoingEngineMessage>缺失。 – mjn
哎唷!不要「手動生成」XML - 使用庫來執行此操作。從長遠來看,這將爲您節省很多麻煩。 – Misha