我需要读取一个 XML 文件并根据某些条件对其某些元素进行注释或取消注释。 文件开始是这样的:
<elements>
<!-- <element1 atribute="value"/> -->
<!-- <element2 atribute="value"/> -->
<!-- <element3 atribute="value"/> -->
<!-- <element4 atribute="value"/> -->
<!-- <element5 atribute="value"/> -->
</elements>
如果我想激活element1
, element3
和 element5
,该文件应如下所示:
<elements>
<element1 atribute="value"/>
<!-- <element2 atribute="value"/> -->
<element3 atribute="value"/>
<!-- <element4 atribute="value"/> -->
<element5 atribute="value"/>
</elements>
换句话说,我正在寻找一种方法来添加或删除 <!--
-->
符合条件的每个 XML 行中的标记。
不幸的是,这种行为是必需的,无法更改。
最佳答案
我认为阅读评论和未评论会使这个问题变得复杂。更简单的方法是添加可以激活标签或停用标签的属性。不需要任何解决方法,只需将其标记为真或假即可。
例如:
<elements>
<!-- <element1 atribute="value"/> -->
<!-- <element2 atribute="value"/> -->
<!-- <element3 atribute="value"/> -->
<!-- <element4 atribute="value"/> -->
<!-- <element5 atribute="value"/> -->
</elements>
可以转化为 to.
<elements>
<element1 atribute="value" isActive="false"/>
<element2 atribute="value" isActive="false"/>
<element3 atribute="value" isActive="false"/>
<element4 atribute="value" isActive="false"/>
<element5 atribute="value" isActive="false"/>
</elements>
同样,下面
<?xml version="1.0" encoding="UTF-8"?>
<elements>
<element1 atribute="value"/>
<!--<element2 atribute="value"/>-->
<element3 atribute="value"/>
<!--<element4 atribute="value"/>-->
<element5 atribute="value"/>
</elements>
可以转化为 to.
<elements>
<element1 atribute="value" isActive="true"/>
<element2 atribute="value" isActive="false"/>
<element3 atribute="value" isActive="true"/>
<element4 atribute="value" isActive="false"/>
<element5 atribute="value" isActive="true"/>
</elements>
这可能是解决此问题的优化方法。现在,您可以使用 JAXB 并将元素标记为 Activity 或非 Activity ,而不是注释和取消注释。
如果这不能让您的生活更轻松,总有使用正则表达式、xslt 等的解决方法。
关于java - 使用 JAXB 操作 XML 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37061225/