Java 从XML文件获取名称空间

Java 从XML文件获取名称空间,java,xml,namespaces,Java,Xml,Namespaces,我有这个XML文件,我需要知道名称空间的URI <?xml version="1.0" encoding="utf-8"?> <fe:Facturae xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:fe="http://www.facturae.es/Facturae/2014/v3.2.1/Facturae" >

我有这个XML文件,我需要知道名称空间的URI

<?xml version="1.0" encoding="utf-8"?>
<fe:Facturae 
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
    xmlns:fe="http://www.facturae.es/Facturae/2014/v3.2.1/Facturae" >
    <FileHeader>
    </FileHeader>
</fe:Facturae>
该属性的名称是正确的,但NamespaceURI和前缀不是我要查找的值

我做错了什么


提前感谢您的回答。

您不需要属性的名称空间,而是需要属性值

而不是

logger.info("attribute.NamespaceURI : {}", attribute.getNamespaceURI());
你应该使用

logger.info("attribute.Value : {}", attribute.getValue());
那么输出是:

element         : {}fe:Facturae
attribute.Name         : {}xmlns:ds
attribute.Value        : {}http://www.w3.org/2000/09/xmldsig#
attribute.Prefix       : {}xmlns
attribute.Name         : {}xmlns:fe
attribute.Value        : {}http://www.facturae.es/Facturae/2014/v3.2.1/Facturae
attribute.Prefix       : {}xmlns

您不需要属性的名称空间,而是需要属性值

而不是

logger.info("attribute.NamespaceURI : {}", attribute.getNamespaceURI());
你应该使用

logger.info("attribute.Value : {}", attribute.getValue());
那么输出是:

element         : {}fe:Facturae
attribute.Name         : {}xmlns:ds
attribute.Value        : {}http://www.w3.org/2000/09/xmldsig#
attribute.Prefix       : {}xmlns
attribute.Name         : {}xmlns:fe
attribute.Value        : {}http://www.facturae.es/Facturae/2014/v3.2.1/Facturae
attribute.Prefix       : {}xmlns

这有帮助吗:?谢谢@Parfait!你的帖子正是我需要的。我需要使用.getLocalName()来获取“fe”和“ds”。谢谢!这有帮助吗:?谢谢@Parfait!你的帖子正是我需要的。我需要使用.getLocalName()来获取“fe”和“ds”。谢谢!谢谢它工作得很好。还有一件事:我认为getPrefix()在这两种情况下会得到“ds”和“fe”,但实际上只会得到第一部分。是否有任何方法可以获取冒号以外的内容“:”?多亏@Parfait:the方法。getLocalName()是获取“ds”和“fe”所需的方法。谢谢!它工作得很好。还有一件事:我认为getPrefix()在这两种情况下会得到“ds”和“fe”,但实际上只会得到第一部分。是否有任何方法可以获取冒号以外的内容“:”?多亏@Parfait:the方法才得以解决。getLocalName()是获取“ds”和“fe”所需的方法。