繁体   English   中英

Java 在 XML 文件中替换

[英]Java replace in XML-file

我在我的 Android 手机上创建了自己的 XML 文件,它看起来与此类似

<?xml version="1.0" encoding="utf-8" ?> 
<backlogs> 
   <issue id="1"> 
      <backlog id="0" name="Linux" swid="100" /> 
      <backlog id="0" name="Project Management" swid="101" /> 
   </issue> 
   <issue id="2"> 
      <backlog id="0" name="Tests" swid="110" /> 
      <backlog id="0" name="Online test" swid="111" /> 
      <backlog id="0" name="Test build" swid="112" /> 
      <backlog id="0" name="Update" swid="113" /> 
   </issue> 
</backlogs>

然后我使用正则表达式将其转换为字符串以替换字符串内部,但是正则表达式有问题。
我刚刚创建的正则表达式是这样的

([\n\r]*)<(.*)issue(.*)1(.*)([\n\r]*)(.*)([\n\r]*)(.*)([\n\r]*)(.*)<(.*)/(.*)issue(.*)

我需要用另一个字符串中的另一个问题标签替换特定的问题标签(位于特定的 ID)
正则表达式适用于 ID 1 的标签,但不适用于 ID 2 的标签,因为还有其他数量的标签,但是有没有办法绕过数量的使用?

我希望你能理解我的问题

我终于找到了我的问题的解决方案,即

([\n\r]*)<(.*)issue(.*)1[\S\s]*?<(.*)/(.*)issue(.*)

不要使用正则表达式。 请。 使用 XML 解析器。

你知道什么是投票最高的SO 答案

同时使用 SAX(或 StAX)解析器和编写器。

当您读取一个事件时,检测是否将相同的事件类型写入写入器而不进行修改,或者在您当前所在的 state 中进行一些修改 - 例如交换元素名称或属性值。 这将以 CPU 使用为代价处理无限数量的元素; 一般来说,它会很轻。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM