java - 使用 JAXB 操作 XML 注释

标签 java xml xml-parsing jaxb

我需要读取一个 XML 文件并根据某些条件对其某些元素进行注释或取消注释。 文件开始是这样的:

<elements>
    <!-- <element1 atribute="value"/> -->
    <!-- <element2 atribute="value"/> -->
    <!-- <element3 atribute="value"/> -->
    <!-- <element4 atribute="value"/> -->
    <!-- <element5 atribute="value"/> -->
</elements>

如果我想激活element1 , element3element5 ,该文件应如下所示:

<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/

相关文章:

java - java中如何根据条件分割字符串

java - 如何使用正则表达式在同一行捕获可变数量的模式?

java - 使用斯坦福解析器的 Tregex 提取与连词连接的 VP/NP

java - 如何在 selenium webdriver 中将值从一个测试用例传递到另一个测试用例

java - 来自 xml 文件的 jdbc 连接

java - Android:RelativeLayout 中不能存在循环依赖

html - 从 SVG 文件中提取路径坐标

XPath 简单的条件语句?如果节点 X 存在,那么 Y 存在吗?

android - 如何在 kotlin 的 xml 标签中自动添加相同的 xml 代码?

ios - 如何限制在coredata中输入空值?