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」を表示するはずですが、行末に「ユーザー名」が表示されます。
Delphi コードのどこにエラーがありますか?
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"」が欲しいのですが、何も表示されません。
ご協力ありがとうございました。