删除xml文件的空格和换行符

时间:2014-05-23 16:50:35

标签: xml delphi delphi-2010

我从webservice收到一个xml文件,但是它带有换行符和标签之间的空格,我需要删除它们并将xml放在一行中的字符串中。 我已经尝试过使用TXMLDocument,但我只能替换选项卡的空格。

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;

1 个答案:

答案 0 :(得分:2)

doNodeAutoIndent属性中删除TXMLDocument.Options标记,从poPreserveWhiteSpace属性中删除TXMLDocument.ParseOptions标记。