小编Ken*_*Ken的帖子

获取属性的Node父级

我需要通过此属性的XPath从XML文档中删除属性.
一切都应该用Java来完成.
我能够使用以下代码找到属性的节点:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document document = dbf.newDocumentBuilder().parse(new File("input.xml"));

XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
XPathExpression expression = xpath.compile("//div[@id='1']/@id");

Node myNode = (Node) expression.evaluate(document, XPathConstants.NODE);
Run Code Online (Sandbox Code Playgroud)

我的想法是获取属性的节点父节点,然后调用removeChild方法将属性的节点作为参数传递.

myNode.getParentNode().removeChild(myNode);
Run Code Online (Sandbox Code Playgroud)

遗憾的是,根据API文档,属性节点始终没有父节点.

在这种情况下,有没有办法确定属性的Node父节点?

java xml dom

12
推荐指数
1
解决办法
7696
查看次数

用ant检查引用

有没有办法检查蚂蚁是否在某处定义了具有特定refid的引用?

例如,我需要在使用之前检查my.ref是否已定义,如下所示.

<pathconvert property="my.prop" refid="my.ref">
...
</pathconvert>
Run Code Online (Sandbox Code Playgroud)

我需要这样做,因为在我的项目中有一些不受我控制的构建脚本(实际上,我不允许有时检查它们的内容).

这些脚本应该定义此引用.不幸的是,由于某些原因,我不能指望这个引用是定义的.

所以,我需要检查它并执行优雅的错误处理或一些特定的操作.

有什么办法吗?

更新:

我找到了自己做的正确方法.它可以通过使用任务的isreference元素来condition完成.

例如:

<condition property="my.ref.defined">
    <isreference refid="my.ref"/>
</condition>
<fail unless="my.ref.defined" message="Reference my.ref not defined."/>
Run Code Online (Sandbox Code Playgroud)

ant

5
推荐指数
1
解决办法
1526
查看次数

标签 统计

ant ×1

dom ×1

java ×1

xml ×1