这就是我的xml的样子
<xml>
<tagA value="one"/>
<tagB value="two"/>
<tagA value="three"/>
<tagC value="null"/>
</xml>
我只有才能通过这个简化的API层访问String.split(regex)
我必须使用(无模式)。
我最接近解析所有标签:
String xmlContent = "<xml><tagA value=\"one\"/><tagB value=\"two\"/><tagA value=\"three\"/><tagC value=\"null\"/></xml>";
String[] splitedTexts = xmlContent.split("(?=<)(?<=>)");
for (String string : splitedTexts) {
System.out.println(string);
}
结果将是:
<xml>
<tagA value="one"/>
<tagB value="two"/>
<tagA value="three"/>
<tagC value="null"/>
</xml>
我只对tagA和tagB (tagA|tagB)
感兴趣,但是当我尝试添加它时,我最终弄乱了正则表达式。使用JavaScript语法,它可以使用此正则表达式<(tagA|tagB) value([\S]*)\b(\s*?=\s*?")\S*\B
。
没有得到与Java一起工作。预期的产出将是:
<tagA value="one"/>
<tagB value="two"/>
<tagA value="three"/>
下一步是将对中的值放入地图
{"tagA", "one"}
{"tagB", "two"}
{"tagA", "three"}
答案 0 :(得分:1)
答案 1 :(得分:0)
恭喜:您发现正则表达式无法用于解析XML。如果你阅读一些计算机科学理论,你会发现这是因为XML不是一种常规语言(它的语法 - 就像其他分层格式,如JSON - 是递归的)。
所以这样做:使用XML解析器。