Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi TXMLNodeList节点名#文本_Delphi - Fatal编程技术网

Delphi TXMLNodeList节点名#文本

Delphi TXMLNodeList节点名#文本,delphi,Delphi,我尝试使用IXMLDocument(类似于Lua解释器)遍历xml节点和属性。ProcessNode过程类 procedure ProcessNode(node: IXMLNode); var cNode: IXMLNode; nList: IXMLNodeList; i: integer; begin if node = nil then exit; PrintLocal(format('%s %s', [node.NodeName, GetEnumName(Typ

我尝试使用IXMLDocument(类似于Lua解释器)遍历xml节点和属性。ProcessNode过程类

procedure ProcessNode(node: IXMLNode);
var
  cNode: IXMLNode;
  nList: IXMLNodeList;
  i: integer;
begin
  if node = nil then
    exit;
  PrintLocal(format('%s %s', [node.NodeName, GetEnumName(TypeInfo(TNodeType), Ord(node.NodeType))]));
  nList := node.AttributeNodes;
  for i := 0 to nList.Count - 1 do
    PrintLocal(format('%s %s %s', [nList[i].NodeName, node.Attributes[nList[i].NodeName], GetEnumName(TypeInfo(TNodeType), Ord(nList[i].NodeType))]));

  cNode := node.ChildNodes.First;
  while cNode <> nil do begin
    ProcessNode(cNode);
    cNode := cNode.NextSibling;
  end;
end;
但是当xml喜欢

<Items>
    <Text>+\n-\n*\n/</Text>
</Items>
<ItemIndex>0</ItemIndex>

当NodeName为“text”时,如何从此类节点检索值?

检查
ntText的
Node.NodeType
,并从
Node.text
获取值。或者,您也可以使用
INode.IsTextElement
属性

<Items>
    <Text>+\n-\n*\n/</Text>
</Items>
<ItemIndex>0</ItemIndex>
Items ntElement
Text ntElement
#text ntText
ItemIndex ntElement
#text ntText