为了账号安全,请及时绑定邮箱和手机立即绑定

即使设置了 NamespaceContext 也无法获取标签的文本

即使设置了 NamespaceContext 也无法获取标签的文本

开满天机 2022-07-14 09:00:11
我是 xpath 的新手,我从未在 java 上处理过 xml。我想从 xml 中获取值。标签前面可能有也可能mgns1:没有。所以我写了这段代码:private List<String> parse(Node node, String file) throws XPathExpressionException {    XPath xpath = XPathFactory.newInstance().newXPath();    xpath.setNamespaceContext(new NamespaceContext() {        public String getNamespaceURI(String prefix) {            return prefix.equals("mgns1") ? "urn:edeveloper.Fournisseurs1031af" : null;        }        public Iterator<?> getPrefixes(String val) {            return null;        }        public String getPrefix(String uri) {            return null;        }    });    Node node_codreg = (Node) xpath.evaluate("mgns1:CODREG", node, XPathConstants.NODE);    ...}我尝试使用没有 .xml 的 xml mgns1:。但是在运行时我没有得到 ListNodes !那么有什么问题呢?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

您正在寻找名为 的元素mgns1:CODREG,其中 mgns1 表示名称空间urn:edeveloper.Fournisseurs1031af

在您向我们展示的 XML 文档中,命名空间中没有元素urn:edeveloper.Fournisseurs1031af。那么为什么你会期望你的表达式选择任何东西呢?

此外,您只是在寻找所提供的直接子node节点,而您还没有告诉我们这个节点是什么。也许您想寻找所有后代,而不仅仅是直系子女?


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信