我正在处理基于XML的文档中某些字段的导入功能。Xliff - 如何使用Delphi读取属性?
阅读ansich值的工作很完美,不幸的是,我可以做到这一点并不真正属于翻译单元,即读取id。
我的代码:
procedure TForm2.importXliff;
var
i: Integer;
TransUnits: IXMLNodeList;
ID: IXMLNodeList;
begin
if OpenDialog.Execute then
begin
//XMLDocument erzeugen und xml-Datei laden
xmlDoc := newXMLDocument;
xmlDoc.LoadFromFile(OpenDialog.FileName);
Memo1.Lines := xmlDoc.XML;
xmlDoc.Active := True;
TransUnits := xmlDoc.DocumentElement.ChildNodes['file'].ChildNodes['body'].ChildNodes;
ID := xmlDoc.DocumentElement.ChildNodes['body'].ChildNodes;
for i := 0 to TransUnits.Count-1 do
ListBox.Items.Add(TransUnits[i].ChildNodes['source'].Text);
//xmlDoc.DocumentElement.ChildNodes['trans-unit'].AttributeNodes['id'].Text
end;
end;
我的基于XML的文本文档(XLIFF文件):
<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>
我现在的问题是如何,我可以读跨单元ID?
旁注,您不必通过使用'NewXMLDocument'来创建新文档并进行后续激活;为此,使用'LoadXMLDocument'函数就足够了。 – TLama 2013-05-06 15:11:30