【问题标题】:How to add new content in a xliff file?如何在 xliff 文件中添加新内容?
【发布时间】:2013-05-08 07:26:53
【问题描述】:

我想知道如何将新的 Line/Element/Content 添加到 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>

我想在&lt;trans-unit id='#3'&gt; 中的&lt;source&gt; 行之后插入&lt;target&gt;l'arbre&lt;/target&gt;

【问题讨论】:

    标签: xml delphi delphi-xe3 xliff


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      相关资源
      最近更新 更多