当我尝试从包含 xml 的字符串解析到 org.w3c.dom.Document 时出现解析问题。
这是我尝试解析的 xml 字符串的示例:
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<idLote>123</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
...
</NFe>
</enviNFe>
问题是,在 que String 被解析之后,通过以下代码:
private Document documentFactory(String xml) throws SAXException,
IOException, ParserConfigurationException, DocumentException, TransformerException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
Document document = factory.newDocumentBuilder().parse(
new ByteArrayInputStream(xml.getBytes()));
return document;
}
标签 NFe 加载时没有命名空间 (xmlns="http://www.portalfiscal.inf.br/nfe")
我想知道为什么会发生这种情况,以及我能做些什么来解决这个问题。
任何帮助都会很棒。谢谢,对不起我的英语。
------编辑---- 为了更好地理解:
此 xml 将在解析后立即签名,并将发送到政府的服务器(巴西)。在此之后,我向该服务器发出另一个请求,以验证它是否已被处理。如果是这样,如果有任何错误,我会得到积极的回应。我遇到的第一个问题是 xml 格式错误。发生这种情况是因为我在标签 NFe 中发送了没有该命名空间的 xml。为了解决这个问题,我在文件中添加了它(命名空间),在 xml 被签名之后。这个问题其实已经解决了,但是出现了另一个问题:签名的不同。因为我在没有命名空间的情况下签署了 xml,并与它一起发送。