因此尝试从此 XML 中选择节点“NumSerieFacturaEmisor”:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns4:RespuestaLRFacturasEmitidas
xmlns:ns4="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd"
xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/SuministroInformacion.xsd">
<ns4:RespuestaLinea>
<ns4:IDFactura>
<IDEmisorFactura>
<NIF>B44444395</NIF>
</IDEmisorFactura>
<NumSerieFacturaEmisor>FV1810007</NumSerieFacturaEmisor>
<FechaExpedicionFacturaEmisor>24-10-2018</FechaExpedicionFacturaEmisor>
</ns4:IDFactura>
</ns4:RespuestaLinea>
</ns4:RespuestaLRFacturasEmitidas>
</soap:Body>
</soap:Envelope>
使用 DotNet System.Xml 函数:
XMLNamespaceMgr.AddNamespace('ns4','https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/igic/ws/RespuestaSuministro.xsd');
FoundXMLNodeList = XMLRootNode.SelectNodes('//ns4:RespuestaLinea',XMLNamespaceMgr);
FOR Index := 0 TO FoundXMLNodeList.Count - 1 DO BEGIN
XMLNode := FoundXMLNodeList.Item(Index);
FoundXMLNode := XMLRootNode.SelectSingleNode('//ns4:IDFactura//NumSerieFacturaEmisor',XMLNamespaceMgr);
DocNo := FoundXMLNode.InnerText;
END
所以XMLRootNode.SelectSingleNode 返回 null。我看到的是父元素具有“ns4”命名空间,但子元素没有命名空间。我是否必须更改我的代码才能选择“NumSerieFacturaEmisor”子元素?