我计划采用一个方便的工具来处理gpx文件的创建。
我相信SimpleStorage是一种基于OmniXML的存储,适合于简单的xml数据管理,系统中的数据存储和数据交换都适合它。
下面是一个(不完整的)代码片段,用于按此方式生成裸骨骼GPX文件:

function CreateGpx: ISimpleStorage;
const
  versionStr = '1.1';
  creatorStr = 'MyGpxCreatorSSway';

  xmlnsStr = 'http://www.topografix.com/GPX/1/1';
  xmlns_xsiStr = 'http://www.w3.org/2001/XMLSchema-instance';
  xsiStr: string =  xmlnsStr+' '+
                    xmlnsStr+'/gpx.xsd';

begin
  Result := CreateStorage('gpx');

  CreateBuilder(Result).Construct(
  [
    AddAttr('xmlns',xmlnsStr),
    AddAttr('version',versionStr),
    AddAttr('creator',creatorStr),
    AddAttr('xmlns:xsi',xmlns_xsiStr),
    AddAttr('xsi:schemaLocation',xsiStr),
    //
    AddElement('metadata',
    [
      AddElement('bounds',
      [
        AddAttr('minlat','90.00000000'),
        AddAttr('minlon','180.00000000'),
        AddAttr('maxlat','-90.00000000'),
        AddAttr('maxlon','-180.00000000')
      ]),
      AddElement('extensions',[])
    ]),
    AddElement('extensions',[])
  ]
  );
end;

请帮帮我!

最佳答案

我在Miha Remec的post网站上发现了相关的OmniXML
我的问题有一个可能的答案可以归结为:

with OwnerDocument(Result.XMLNode) do
begin
  InsertBefore(CreateProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"'), DocumentElement)
end;

要在指令行之后追加:
  Result := CreateStorage('gpx');

09-11 17:27