>简短的答案:使用XPath local-name().像这样:xPathFactory.newXPath().compile(“// * [local-name()=’requestURL’] / text()”);将返回/ CAMERA / Streaming / status

>或者你可以实现一个NamespaceContext来映射名称空间名称和URI,并在XPath对象之前设置它,然后再查询.

看看这个

blog article

解决方案1样本:

XPath xpath = XPathFactory.newInstance().newXPath();

String responseStatus = xpath.evaluate("//*[local-name()='ResponseStatus']/text()", document);

System.out.println("-> " + responseStatus);

解决方案2样本:

// load the Document

Document document = ...;

NamespaceContext ctx = new NamespaceContext() {

public String getNamespaceURI(String prefix) {

return prefix.equals("urn") ? "urn:camera-org" : null;

}

public Iterator getPrefixes(String val) {

return null;

}

public String getPrefix(String uri) {

return null;

}

};

XPath xpath = XPathFactory.newInstance().newXPath();

xpath.setNamespaceContext(ctx);

String responseStatus = xpath.evaluate("//urn:ResponseStatus/text()", document);

System.out.println("-> " + responseStatus);

编辑

这是一个完整的例子,它正确地检索元素:

String xml = "\r\n" + //

"\r\n" + //

"/CAMERA/Streaming/status\r\n" + //

"4\r\n" + //

"Invalid Operation\r\n" + //

"0\r\n" + //

"\r\n" + //

"";

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(new java.io.ByteArrayInputStream(xml.getBytes()));

XPath xpath = XPathFactory.newInstance().newXPath();

xpath.setNamespaceContext(new NamespaceContext() {

public String getNamespaceURI(String prefix) {

return prefix.equals("urn") ? "urn:camera-org" : null;

}

public Iterator> getPrefixes(String val) {

return null;

}

public String getPrefix(String uri) {

return null;

}

});

XPathExpression expr = xpath.compile("//urn:ResponseStatus");

Object result = expr.evaluate(doc, XPathConstants.NODESET);

NodeList nodes = (NodeList) result;

for (int i = 0; i < nodes.getLength(); i++) {

Node currentItem = nodes.item(i);

System.out.println("found node -> " + currentItem.getLocalName() + " (namespace: " + currentItem.getNamespaceURI() + ")");

}

java中的命名空间_XPath与Java中的命名空间相关推荐

  1. java获取wsdl命名空间_Web服务 – WSDL中的targetNamespace和命名空间

    WSDL文件中的目标命名空间将是与SOAP服务本身相关联的名称空间.例如,我们有一个客户服务,命名空间将像http://www.acme.com/Customer/V1/CustomerService ...

  2. java开发中遇到的Bug(持续更新中)

    1.Error creating bean with name 'XXX': Injection of autowired dependencies: 错误原因:实体类中没有@Component(&q ...

  3. java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口

    JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...

  4. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  5. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  6. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  7. java gettext_JAVA中getText()怎么从一个JTextArea中读出内容?

    想先创建一个JTextArea,然后在里面输入内容(几个字母),然后用getText读出里面的内容,可是好像只能是先在JTextArea里面写,然后getText才能读出,而不能先运行,在图形界面的J ...

  8. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  9. (转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)

    原处:http://blog.csdn.net/ns_code/article/details/17485221 在这里看到了try catch finally块中含有return语句时程序执行的几种 ...

最新文章

  1. 23Command(命令)模式
  2. .netcore 如何获取系统中所有session_集群化部署,Spring Security 要如何处理 session 共享?
  3. oracle如何删除重复数据第一条,oracle删除重复数据保留第一条记录
  4. python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)
  5. 浅析 Java Thread.join()
  6. 简单爬虫-爬取免费代理ip
  7. python一节课多久_第一节课 python简介
  8. ThinkPHP中的路由是什么意思?
  9. Bug(四)——error LNK1112:模块计算机类型x86与目标计算机类型x64冲突
  10. java学习(一)多态
  11. word字间距异常处理方式
  12. Linux内核部件分析 更强的链表klist
  13. oracle 创建视图_Oracle 中视图的创建和处理方法
  14. JAVA中super和this关键字的区别
  15. zblog include html页面,zblog模板开发第一课:zblog标签调用大全
  16. 一次哔哩哔哩面试经历,吐血整理
  17. python两两组合_python – 一个列表中的两个组合列表
  18. 案例1—MP3在线搜索下载程序
  19. 基于Python的指数基金量化投资——指数数据获取
  20. PAT甲级真题目录(按题型整理)(转自柳神)

热门文章

  1. 如何在 Python 数据中灵活运用 Pandas 索引?
  2. 人人在谈的物联网,入门开发真难!
  3. 常见六大 Web 安全攻防解析 | 技术头条
  4. Java 即将迎来转折点
  5. 开发者编程时应该围着“程序”转吗?
  6. @程序员,幼儿园小班都在学 AI,就问你慌不慌?
  7. 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?
  8. 分布式架构的演进过程,docker面试题汇总
  9. Java高级开发面试,Java面试没有项目经验
  10. 计算机中¥符号按哪个键,在电脑设计中人民币¥这个符号咋弄出来