我在用 Delphi 读取一些 xml 节点时遇到问题。我想从此 xml 代码中读取 id
例子:
<row name="String.101" status="new" comment="">
<native>"User Name"</native>
<lang id="en" status="ready">"User Name"</lang>
<lang id="fr" status="translated">"Nom d'utilisateur"</lang>
<lang id="hu" status="translated">"Felhasználó neve"</lang>
<lang id="it" status="translated">"Nome utente"</lang>
<lang id="zh" status="translated">"用户名&quot;</lang>
<lang id="de" status="ready">"Benutzername"</lang>
</row>
我的程序应该在“id="en"' 中显示“en”,但在行尾显示“用户名”。
我的德尔福代码中的错误在哪里?
begin
TransNodes := XMLDocument.DocumentElement.ChildNodes['targets'].ChildNodes['target'].ChildNodes['stringdata'].ChildNodes;
for i := 0 to TransNodes.Count -1 do
begin
sContext := TransNodes[i].Attributes['name'];
sOriginalStatus := TransNodes[i].Attributes['status'];
sNativeText := TransNodes[i].ChildNodes['native'].Text;
sLangId := TransNodes[i].ChildNodes['id'].Text;
sStatus := TransNodes[i].ChildNodes['status'].Text;
Delete(sNativeText, Length(sNativeText), 1);
Delete(sNativeText, 1, 1);
Delete(sLangId, Length(sLangId), 1);
Delete(sLangId, 1, 1);
Delete(sStatus, Length(sStatus), 1);
Delete(sStatus, 1, 1);
Memo.Lines.Add(sContext + ' ' + sOriginalStatus + ' ' + sNativeText + ' ' + sLangId + ' ' + sStatus);
我用 .Attributes 和 .ChildNodes 试过它...用 .Attributes delphi 告诉我一个错误。状态也有同样的问题。例如,我想要'status="ready"',但他什么也没告诉我。
感谢您的帮助和时间。