【发布时间】:2011-01-15 19:49:31
【问题描述】:
编辑:100% 正确的理论是您根本不想这样做。不过我已经接受了最有帮助的答案。
所以我从一个承诺修复它的客户那里得到了丑陋的 XML。与此同时,我需要自己清理它。我正在寻找一个在 Java 中使用的正则表达式来为未引用的属性添加引号。一般情况更好,但到目前为止只有一个属性被破坏,因此正则表达式可以专门引用“attr1”。该属性的值未知,因此我无法将其包含在搜索中。
<tag attr1 = VARIABLETEXT>
<tag attr1 = "VARIABLETEXT">not quoted</tag>
<tag attr1 = VARIABLETEXT attr2 = "true">
<otherTag>buncha junk</otherTag>
<tag attr1 = "VARIABLETEXT">"quoted"</tag>
应该变成
<tag attr1 = "VARIABLETEXT">
<tag attr1 = "VARIABLETEXT">not quoted</tag>
<tag attr1 = "VARIABLETEXT" attr2 = "true">
<otherTag>buncha junk</otherTag>
<tag attr1 = "VARIABLETEXT">"quoted"</tag>
编辑:非常感谢你告诉我不要做我想做的事。然而,这不是随机的,任何东西都是 XML,在那里我会遇到所有“不要这样做”的问题。我已经阅读了其他线程。我正在寻找针对特定 hack 的特定帮助。
【问题讨论】:
-
vi 文件名.xml;
:%s/attr1 = false/attr1 = "false"/g... 还有 gVim for Windows。 -
如果它只是暂时的,为什么不使用清理/验证库对其进行预处理?
-
一个问题:你怎么知道
VARIABLETEXTattr2在哪里拆分?是不是下一个属性以attr开头?还是大写/小写切换? -
对不起,蒂姆,VARIABLETEXT 和 attr2 之间应该有一个空格。