我從web服務接收到一個xml文件,但它帶有換行符和空格之間的空格,我需要刪除它們並將xml放在一行中的字符串中。 我已經嘗試使用TXMLDocument,但我只有我只能替換選項卡的空格。刪除xml文件的空格和換行符
爲例XML的:
<CompNfse xmlns="http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd">'#$D#$A' <Nfse versao="">'#$D#$A' <InfNfse Id=" 00000000000670">'#$D#$A' <Numero>10</Numero>.....
使用TXMLDocument的
<CompNfse xmlns="http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd">'#$D#$A#9'<Nfse versao="">'#$D#$A#9#9'<InfNfse Id=" 00000000000670">'#$D#$A#9#9#9'<Numero>10</Numero>....
我是如何
<CompNfse xmlns="http://www.sistema.com.br/Nfse/arquivos/nfse_3.xsd"><Nfse versao=""><InfNfse Id=" 00000000000670"><Numero>10</Numero>....
我試過代碼。
var sTemp : String;
oXml : TXMLDocument;
begin
try
sTemp := '<Nfse versao="">'+#13#10+' <InfNfse Id=" 00000000000670">'+#13#10+' <Numero>10</Numero>'+#13#10+' <CodigoVerificacao>82557.2TE79</CodigoVerificacao></InfNfse></Nfse>';
oXml := TXMLDocument.Create(nil);
oXml.Options := [];
oXml.ParseOptions := [];
oXml.LoadFromXML(sTemp);
sTemp := oXml.XML.Text;
finally
oXml := nil;
end;
end;
爲什麼地球上你會「需要」將XML強制到一條線上? **(1)** XML標準特別要求可以在不影響數據含義的情況下添加或刪除空格。 **(2)**如果您(或客戶端)擁有無法處理額外空白的XML解析器:***請解析該解析器!***使用不合標準的解析器只會使長期困難。 **(3)**使用空格和換行符的XML實際上有一個優點:在一個不好的編輯器(如記事本)中可以讀取它們...... _您不應該爲XML格式化而煩惱 - 這是浪費時間_ 。 –
爲什麼你需要刪除空格?這是合法的XML,你仍然可以解析它。 –
因爲我需要使用第三方組件讀取xml並且不讀取帶有空格和制動線的數據。 – Rigotti