gpt4 book ai didi

xml - Xliff - 如何使用 Delphi 读取属性?

转载 作者:行者123 更新时间:2023-12-02 09:46:33 26 4
gpt4 key购买 nike

我正在为基于 XML 的文档中的某些字段开发导入功能。

ansich值的读取工作完美,不幸的是,我可以做到这一点并不能真正读取trans-unit的属性,即读取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?

最佳答案

IXMLNodeListIXMLNode 的集合您可以通过 Attributes 按名称访问其属性的项目属性(property)。在伪代码中,它可能如下所示:

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
TransUnits: IXMLNodeList;
XMLDocument: IXMLDocument;
begin
XMLDocument := LoadXMLDocument('d:\File.xml');
if Assigned(XMLDocument) then
begin
TransUnits := XMLDocument.DocumentElement.ChildNodes['file'].ChildNodes['body'].ChildNodes;
for I := 0 to TransUnits.Count - 1 do
ShowMessage(TransUnits[I].Attributes['id']);
end;
end;

关于xml - Xliff - 如何使用 Delphi 读取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16401530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com