【发布时间】:2015-09-08 13:24:51
【问题描述】:
假设我有一个 xml 格式的字符串
String gandalfSchema = "<Wizard><Name> Gandalf </Name><God Mode>Off</God Mode></Wizard>";
我想删除多个标签值的所有前导和尾随空格;在这种情况下 Gandalf 在 <Name> 中。
我不确定以下方法是否最好:
String nameBeginIndex = gandalfSchema.substring("<Name>");
String nameEndIndex = gandalfSchema.substring("</Name>");
String nameRaw = gandalfSchema.substring(nameBeginIndex+6,nameEndIndex);
String nameProcessed = nameRaw;
String stringBeforeNameRaw = gandalfSchema.substring(nameBeginIndex);
String stringAfterNameRaw = gandalfSchema.substring(nameEndIndex);
gandalfSchema = stringBeforeNameRaw + nameProcessed + stringAfterNameRaw
现在想象一下对 3-4 个标签执行上述操作,我认为这是不好的做法。是否有我可能忽略的 Java 库或约定?
【问题讨论】:
-
您正在寻找 XML 解析器。这绝对不是最好的方法,因为这不是一个可移植的解决方案。
-
使用 XML 库(或阅读器)可以轻松遍历整个结构并修复相关的文本节点。一般来说,对于任何外部格式(例如 XML、JSON、Excel),在为此目的设计的工具/库/适配器之外生成、修改或使用原始数据都是“不好的做法”。
-
@Makoto 那你有首选的 XML 阅读器吗?
-
<Gode Mode>不是有效的 XML 元素。