ZBLOG

function MyFunction(const FileName, ID: string): string; var XMLDoc: TNativeXml; Node, SubNode1, SubNode2, SubNode3: TXmlNode; NodeList: TXmlNodeList; i: Integer; begin Result := ''; XMLDoc := TNativeXml.Create(nil); try XMLDoc.L...

根据您提供的信息,TNativeXml 库中确实没有 NodeFindChild 方法。但是,可以使用 TXmlNodeList 类型的 FindNodes 方法来查找符合条件的节点。

以下是修改后的代码示例:

function MyFunction(const FileName, ID: string): string;
var
  XMLDoc: TNativeXml;
  Node, SubNode1, SubNode2, SubNode3: TXmlNode;
  NodeList: TXmlNodeList;
  i: Integer;
begin
  Result := '';
  XMLDoc := TNativeXml.Create(nil);
  try
    XMLDoc.LoadFromFile(FileName);
    NodeList := XMLDoc.Root.NodeByName('node').FindNodes('subnode1[@id="' + ID + '"]');
    for i := 0 to NodeList.Count - 1 do
    begin
      Node := NodeList[i].Parent;
      SubNode2 := Node.NodeByName('subnode2');
      if Assigned(SubNode2) then
      begin
        SubNode3 := SubNode2.NodeByName('subnode3');
        if Assigned(SubNode3) then
          Result := SubNode3.AttributeByName['attribute']; //返回subnode3 attribute的值
      end;
    end;
  finally
    XMLDoc.Free;
  end;
end;

在上面的代码中,我使用了 FindNodes 方法来查找具有特定 id 属性值的 subnode1 节点,并将结果存储在 TXmlNodeList 对象中。然后,在循环中遍历列表并查找相应的子节点。

希望这个修改能够解决您遇到的问题!

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4847

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?