我使用的是Java 1.6.0
我正在寻找在 Java 中编码特殊 HTML 字符的正确方法
我的 HTML
<div id="sliceXML">Florida</div>
我正在尝试使用下面的 Java 将 String xmlMatch 定义为上述 div 标签的内容(在本例中为 Florida)。但是我相信我没有正确定义 startTag 或 endTag。
我的Java
String testContent = contentPara;
String startTag = "\"sliceXML\">";
String endTag = "</div";
String xmlMatch = null;
int startPosition = testContent.indexOf(startTag);
if(startPosition >1){
int subStringIndex = startPosition + startTag.length();
int endPosition = testContent.indexOf(endTag, subStringIndex);
if(endPosition >= startPosition){
xmlMatch = testContent.substring(subStringIndex, endPosition);
out.println(xmlMatch.length());
//out.println(startTag);
out.println("Florida".equals(xmlMatch));
out.println("florida".equals(xmlMatch));
}
}
任何帮助都非常有用。这也让我能够回答之前的相关问题 here
编辑
解决方案
正如我在下面解释的,我相信我的问题是 String endTag = "</div";
中的正斜杠为了解决这个问题,我只是将结束标记更改为 String endTag = "<";
我还是不知道为什么会这样,如果有人能回答就太好了。
最佳答案
我真的会使用 HTML 解析器,例如名称容易混淆的 JTidy (它是一个 HTML pretty-print ,但也为您提供了 HTML 结构的 DOM 接口(interface))。
它将帮助您摆脱诸如解析和处理字符实体以及编码之类的麻烦。
关于java - 在 Java 中对特殊 HTML 字符 < >/"进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285142/