0

我想知道如何将新的行/元素/内容添加到 Xliff 文件。

我将 Delphi Xe³ 与 TXMLDocument 组件一起使用

<xliff version="1.1">
  <file original="myfile.ext" datatype="plaintext" Source-language="en-US" target-language="fr-FR">
    <body>
      <trans-unit id='#1'>
        <source>Der Text.</source>
        <target>Le texte.</target>
      </trans-unit>
      <trans-unit id='#2'>
        <source>Das Flugzeug</source>
        <target>l'avion.</target>
      </trans-unit>   
      <trans-unit id='#3'>
        <source>Der Baum.</source>
      </trans-unit>  
   </body>
  </file>
</xliff>

我想在行<target>l'arbre</target>后插入<source><trans-unit id='#3'>

4

1 回答 1

1
const
 c_target='target';
var
  i:integer;
  NodeElement,NodeElement2: IXMLNode;
begin
  NodeElement:= XML.ChildNodes.FindNode('xliff');
  if Assigned(NodeElement) then  NodeElement:= NodeElement.ChildNodes.FindNode('file');
  if Assigned(NodeElement) then  NodeElement:= NodeElement.ChildNodes.FindNode('body');
  if Assigned(NodeElement) then
    begin
      for I := 0 to NodeElement.ChildNodes.Count - 1 do
        begin
          if NodeElement.ChildNodes[i].Attributes['id']='#3' then
            begin
             NodeElement2 := NodeElement.ChildNodes[i].ChildNodes.FindNode(c_target);
             if not Assigned(NodeElement2) then NodeElement2 := NodeElement.ChildNodes[i].AddChild(c_target);
             NodeElement2.NodeValue := 'l''arbre';
             //XML.SaveToFile('C:\temp\test.xml');
            end;

        end;

    end;
end;
于 2013-05-08T11:01:34.457 回答