`
tree_161219
  • 浏览: 87529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Xpath 处理带有命名空间的xml

阅读更多

<?xml version="1.0" encoding="utf-8"?>
<process xmlns="http://jbpm.org/4.4/jpdl" key="payment" name="资金支付">
	<start name="start1" g="265,50,48,48">
		<transition name="to task1" to="填单" g="-53,-17"/>
	</start>
	<!-- candidate-users="1000201100000000036,1000201100000000034"  -->
	<task name="填单" g="243,132,92,52" assignee="1000201100000000036">
		<transition name="提交" to="exclusive1" g="-83,-17"/>
	</task>
	<decision name="exclusive1" g="266,208,48,48" expr="#{finance &gt; 500 ? '大量资金' : '一般资金'}" >
		<transition name="一般资金" to="一般资金" g="-53,-17"/>
		<transition name="大量资金" to="大量资金" g="-53,-17"/>

	</decision>
	<task name="一般资金" g="153,290,92,52" assignee="1000201100000000034">
		<transition name="通过" to="end1" g="-47,-17"/>
	</task>
	<task name="大量资金" g="332,288,92,52" assignee="1000201100000000033">
		<transition name="通过" to="end1" g="-47,-17"/>
	</task>
	<end name="end1" g="268,379,48,48"/>
</process>


SAXReader saxReader = new SAXReader();
	Document document;
	try {
		document = saxReader.read(new File(path + processKey));
		Map<String, String> nameSpaceMap = new HashMap<String, String>();
		nameSpaceMap.put("jbpm", "http://jbpm.org/4.4/jpdl");
		//设置命名空间
		saxReader.getDocumentFactory().setXPathNamespaceURIs(nameSpaceMap);
		//使用xpath找节点的时候前面加  jbpm:  就可以找到。
		Element eleTask = (Element) document.selectSingleNode("/process/jbpm:decision[@name='" + nodeName + "']");
		OutputFormat format = new OutputFormat("", false, "utf-8"); // 设置输出格式为空两格,换行,编码为utf-8
		XMLWriter writer = new XMLWriter(new FileOutputStream(path +processKey), format); // 创建输出对象
		writer.write(document);
		writer.close();
	} catch (DocumentException e1) {
		e1.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
分享到:
评论

相关推荐

    dom4j 读取带有命名空间的xml文件

    你可以使用这些方法结合XPath表达式来定位和操作带有命名空间的元素。 5. **创建和写入带有命名空间的新XML**: 如果需要创建新的XML元素并附加命名空间,可以使用`Element`类的`addNamespace()`方法,然后创建和...

    XPATH读取有命名空间的节点

    总结来说,处理带有命名空间的XML文档,特别是在使用XPath时,需要理解XML命名空间的概念,掌握DOM4J的命名空间注册方法,并能够正确构造XPath表达式。这样,即使面对复杂的XML结构,也能游刃有余地进行数据提取和...

    带命名空间的XML增删改查操作实例

    本实例主要涉及如何在XML文档中进行带有命名空间的操作,包括增、删、改、查等常见操作。 首先,理解XML命名空间的基本概念。命名空间通过一个URI(Uniform Resource Identifier)来唯一标识,通常以`xmlns:`前缀...

    Demo4j和XPath解析XML的文件路径表达式(ZVON.org - X 路径教程)

    DOM4J提供了注册命名空间的方法,以正确解析带有前缀的XPath表达式。 总结来说,Demo4j虽然不直接支持XPath,但通过结合DOM4J这样的XML库,我们可以方便地在Java应用程序中利用XPath的强大功能。通过理解XPath的...

    C# XML处理中xpath使用文档

    XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。在C#中,XPath是处理XML数据的重要工具,提供了简洁的语法来选择、导航和操作XML...理解并熟练运用XPath,可以使C#中的XML处理变得更加高效和便捷。

    网上淘宝--网络资源检索\XML 路径语言(XPath) 版本 1.0.

    XPath提供了处理命名空间的机制,确保正确识别带有命名空间前缀的元素和属性。 在XPath 1.0规范中,还有一份已知错误列表,以及对建议的反馈渠道,鼓励社区参与完善和改进标准。此外,XPath是W3C的XML活动和样式...

    xpath xml 初级 实例

    - 节点类型包括元素、属性、文本、命名空间等。 - 使用`.`代表当前节点,`..`代表父节点。 - 属性可以通过`@`符号选择,如`//element[@attribute='value']`。 - 轴定义了节点之间的关系,如`child::`、`parent::`、`...

    C++ xml文件处理介绍

    综上所述,在.NET框架的C++环境中处理XML文件时,需要掌握XML的基本结构和概念,了解.NET平台提供的XML处理方式及其优势,熟练运用框架中的XML相关命名空间,以实现对XML文件的有效编程和数据处理。

    XML通用解析工具类

    6. 支持命名空间:处理XML文档中的命名空间,确保正确解析带命名空间的元素和属性。 通过使用这样的通用解析工具类,开发者无需深入了解底层解析机制,只需调用相应的API就能高效地处理XML数据,从而提高开发效率,...

    使用路径表达式在 XML 文档中进行导航(xpath简介)

    - `//title[@*]`:选择所有带有属性的 `title` 元素。 3. **运算符**: - `|`:计算两个节点集。 - `+`:加法。 - `-`:减法。 - `*`:乘法。 - `div`:除法。 - `=`:等于。 - `!=`:不等于。 XPath 提供...

    Xpath详解.pdf

    * 节点(Node):在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。 * 父节点(Parent):每个元素以及属性都有一个父节点。 * 节点树:XML 文档是被作为节点树来...

    C#读写xml的源码

    例如,读取带有命名空间的XML时,需要使用XmlNode的SelectNodes方法配合XPath表达式: ```csharp // 使用XPath选择具有特定命名空间的元素 XmlNodeList nodes = xmlDoc.SelectNodes("//ns:Element", new ...

    Java用DOM4J读取XML

    DOM4J不仅兼容DOM和SAX,还提供了额外的功能,如自动命名空间处理、文档验证等。 DOM4J的一些特点包括: - **轻量级**:DOM4J相比标准的DOM实现更加轻量,消耗更少的内存。 - **易用性**:DOM4J提供了一套直观且...

    python处理XML文档

    例如,`ET.QName('{http://example.com}tag')`用于创建一个带有特定命名空间的QName对象。 总结来说,Python的ElementTree库为处理XML文档提供了一套简单而强大的工具,无论是读取、创建、修改还是序列化XML文档,...

    C#操作XML实例

    使用它,你可以正确地选择带有命名空间的元素和属性。 综上所述,C#提供了强大的工具来操作XML文档,包括创建、读取、更新和序列化/反序列化。无论是在本地存储数据还是在网络中传递数据,理解这些概念和方法都是至...

    IOS版本XML解析类

    3. **命名空间处理**:XML文档中常常包含多个命名空间,GDataXML提供了解析和处理命名空间的功能,使得处理带有命名空间的XML文档变得轻松。 4. **错误处理**:GDataXML在解析过程中会捕获并报告错误,这有助于调试...

    xpath-helper

    4. 过滤和条件:XPath允许通过谓语(predicate)来过滤节点,如`//a[@href]`将选择所有带有`href`属性的`a`元素。 5. 函数和运算符:XPath内置了多种函数,如`text()`用于返回节点的文本内容,`count()`计算节点集合...

    php simplexmlElement操作xml的命名空间实现代码

    要使用`SimpleXMLElement`访问这些带有命名空间的元素,我们需要做两件事情: 1. **注册命名空间**:在创建`SimpleXMLElement`对象时,我们可以传入一个关联数组,将命名空间的别名映射到其URI。这使得我们可以使用...

    操作XML文件 源代码

    - `XDocument`和`XPathDocument`是LINQ to XML和XPath查询中的关键类,适用于更现代的XML处理。 3. 使用`XmlDocument`操作XML: - 加载XML:使用`XmlDocument.Load()`方法加载XML文件到内存中。 - 遍历XML:通过...

Global site tag (gtag.js) - Google Analytics