【发布时间】:2014-07-04 00:10:42
【问题描述】:
我有示例 xml 字符串
<root><a>textA</a><b>textB</b></root>
我想使用 java split 函数拆分/遍历这个 xml 以拥有一个数组,其中每个元素及其值一个接一个地放置,以便我可以轻松地操作它们。
我试过了
split("(?=<)|(?<=>)")
但这将返回我的根元素以及数组中的结束标记以及一个元素(附加空格字符串)。 提前致谢(目前无法选择 XML 解析器)。
【问题讨论】:
-
不要使用这种东西来处理 XML - 使用专用的 XML 解析器(例如内置的 DOM 解析器),这样更不容易出错。
-
你是对的......但到目前为止,由于某些限制,我们没有选择使用该解析器(大部分代码已经在产品中)......我们需要以某种方式进行字符串操作更进一步..我知道这很丑,但现在无能为力..
-
我不确定我是否理解您的限制 - 您可以修改代码,但不允许修改代码以使用标准 java XML 解析器?这会导致过多的测试开销吗?我不明白。
-
我同意其他人的观点:字符串操作只能让你走这么远,而且很可能只适用于非常简单的 XML。不使用 XML 解析器的唯一方法(为什么不考虑嵌入作为 J2SE 的一部分?),是编写自己的递归解析器,也就是说:重新发明轮子。 split() 不是一个选项,因为 XML 的整个概念是嵌套元素,这意味着线性数组不适合表示 XML 数据。
-
如何在生产中使用 String.split() 而不是 DocumentBuilderFactory?