gpt4 book ai didi

xml - IXMLDocument 无法读取数据,因为 IXMLNode.Text 属性始终为空

转载 作者:数据小太阳 更新时间:2023-10-29 02:30:14 27 4
gpt4 key购买 nike

我正在尝试使用 Delphi TXMLDocument 解析器读取 XML 文件,但我无法访问节点中的数据,而且我无法弄清楚为什么会发生这种情况。 XML 是:

<?xml version="1.0" encoding="UTF-8"?>
<types:NotificaScarto xmlns:types="http://www.fatturapa.gov.it/sdi/messaggi/v1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versione="1.0" xsi:schemaLocation="http://www.fatturapa.gov.it/sdi/messaggi/v1.0 MessaggiTypes_v1.0.xsd ">
<IdentificativoSdI>111</IdentificativoSdI>
<NomeFile>IT01234567890_11111.xml.p7m</NomeFile>
<DataOraRicezione>2013-06-06T12:00:00Z</DataOraRicezione>
<RiferimentoArchivio>
<IdentificativoSdI>100</IdentificativoSdI>
<NomeFile>IT01234567890_11111.zip</NomeFile>
</RiferimentoArchivio>
<ListaErrori>
<Errore>
<Codice>00100</Codice>
<Descrizione>Certificato di firma scaduto</Descrizione>
</Errore>
</ListaErrori>
<MessageId>123456</MessageId>
<Note>Note</Note>
</types:NotificaScarto>

我需要读取“DataOraRicezione”节点,所以我使用了这段代码:

procedure TForm1.Button1Click(Sender: TObject);
var
XMLD : IXMLDocument;
N0,N1 : IXMLNode;
begin
XMLD:=TXMLDocument.Create(Application);
XMLD.LoadFromFile('d:\IT01131820936_00175_NS_001.xml'); // the XML is on a file
XMLD.Active:=TRUE;
N0:=XMLD.ChildNodes['types:NotificaScarto'];
N1:=N0.ChildNodes['DataOraRicezione'];
ShowMessage(N1.Text); // Empty ?????
end;

我想问题可能与架构有关。直到现在我才读过像这样的 xml 文件我是新手所以我无法读取该值。我搜索类似的答案,但我无法达到我的目标。我错过了什么吗?

谢谢大卫

最佳答案

为了读取节点值,您必须使用 FindNode 方法。

function FindNode(NodeName, NamespaceURI: DOMString): IXMLNode; overload;

像这样

  N0:=XMLD.ChildNodes['types:NotificaScarto'];
N1:=N0.ChildNodes.FindNode('DataOraRicezione', '');
ShowMessage(N1.Text);

对于这种特殊情况,NamespaceURI 必须为空,因为 namespace 不包含在节点本身中。

这将返回

2013-06-06T12:00:00Z

关于xml - IXMLDocument 无法读取数据,因为 IXMLNode.Text 属性始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140835/

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