gpt4 book ai didi

XMLDocument 节点没有值

转载 作者:行者123 更新时间:2023-12-03 18:45:12 30 4
gpt4 key购买 nike

当我使用 TXMLDocument 加载 XML 时,元素不包含任何值。我阅读了以下 example file带有元素 <cbc:ID>TOSL108</cbc:ID> ,它确实找到了节点,但它不将其识别为文本元素并且值为空且没有子元素。

  aNode := XMLDocument1.ChildNodes.Last.ChildNodes.Nodes['ID'];
if Assigned(aNode) then begin
MEMOInfo.Lines.Add('Node is found');
MEMOInfo.Lines.Add( anode.DOMNode.nodeName);
MEMOInfo.Lines.Add( anode.DOMNode.nodeValue);
MEMOInfo.Lines.Add( inttostr(anode.DOMNode.nodetype));
end;

这是结果

Node is found
ID

1



原始问题:

我从 xsd 创建了一个 XML 数据绑定(bind)。即UBL-Invoice-2.1.xsd。我关注了 this教程。

然后我使用了 this教程打开 example发票文件。并且文件被加载到界面中。
var
Invoice:IXMLInvoiceType;
begin
try
invoice := LoadInvoice('invoice-exameple.xml');
except
on e:exception do begin
MEMO.Lines.Add(e.Message);
end;
end;
end;

现在我不知道如何访问节点,例如 <cbc:ID>TOSL108</cbc:ID>我会尝试访问它的文本字段,但它是空的。
MEMO.Lines.Add('Factuurnummer : '+ invoice.ID.Text);

: 所有元素都是空的,那么如何读取这个 XML 文件?

最佳答案

根据DOM level 1 specification , nodeValue在元素节点上返回 null:

The attributes nodeName, nodeValue and attributes are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue for an Element or attributes for a Comment), this returns null.



我建议导航到此元素节点的子文本节点,然后调用 nodeValue而是在此文本节点上。

关于XMLDocument 节点没有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615428/

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