我在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(.*)
答案 0 :(得分:3)
不要使用正则表达式。请。使用XML解析器。
你知道什么是最高投票SO answer
答案 1 :(得分:0)
同时使用SAX(或StAX)解析器和编写器。
当您读取一个事件时,检测是否在未经修改的情况下将相同的事件类型写入编写器,或者在您当前所处的状态下进行某些修改 - 例如交换元素名称或属性值。这将以CPU使用为代价处理无限量的元素;一般来说它会很轻盈。