Java 删除html中的其他语言空间
我想使用StringUtils.strip()修剪标记名和属性之间的空格。因为我有一些空间是不能被 以下是杰里科的方法:Java 删除html中的其他语言空间,java,html,html-parsing,jericho-html-parser,Java,Html,Html Parsing,Jericho Html Parser,我想使用StringUtils.strip()修剪标记名和属性之间的空格。因为我有一些空间是不能被 以下是杰里科的方法: CharacterReference.DecodeClapseWhitespace(htmlFragment)) 文本提取器 -Tag[]allTags=source.fullSequentialParse() 第一种方法删除普通空间,但不删除其他语言空间。 这就是我得到的错误。比如说 html = "<a href=\"test.html\"><f
- CharacterReference.DecodeClapseWhitespace(htmlFragment))
- 文本提取器 -Tag[]allTags=source.fullSequentialParse()李>
html = "<a href=\"test.html\"><font></font></a>";
StartTag a at (r1,c1,p0) rejected because the name contains an invalid character at position (r1,c3,p2)
Encountered possible StartTag at (r1,c1,p0) whose content does not match a registered StartTagType
html=”“;
已拒绝(r1、c1、p0)处的起始标记a,因为名称在位置(r1、c3、p2)处包含无效字符
在(r1、c1、p0)处遇到可能的StartTag,其内容与注册的StartTagType不匹配
jericho中还有一个generateHTML方法,但我们必须提供所有属性值等
public static java.lang.String generateHTML(java.util.Map<java.lang.String,java.lang.String> attributesMap)
公共静态java.lang.String generateHTML(java.util.Map AttributeMap)
在完全顺序解析中,它不识别其他语言空间
如何删除标记名和属性之间的其他语言空间?(属性值之间的其他语言空间是OK)这就是为什么我不能执行
string.replaceALL()
您可以使用string.replaceALL()
String html=”“;
System.out.println(html.replaceAll(“?它根本不是一个空格(它只是显示为空白)。因此,要用Java替换它,您必须替换此字符。在将其交给Jericho之前,我将执行该替换:用空格替换您的字符,让Jericho在第二步中清除任何不需要的空格。我认为它被视为无效的字符系统。out.println(“Char Ref:+source.getParseText().charAt(4));这是输出Char Ref:“对于jericho,它是无效字符,对于Java,它不应该是无效字符(除非您运行的是Java的本地化版本)。因此Java应该能够替换该字符。知道字符的来源吗?是的,我可以使用StringUtils.strip()在Java中替换它。),我的问题是,我只需要删除标记名和属性之间的空格,以便识别标记。(这是一个日语空格)您可以尝试使用jsoup而不是Jericho来查看它是否接受您的空格。否则,您几乎只剩下全部替换(我不会删除它们:用普通空格替换它们,然后使用Jericho来清理)或者编写自己的代码来识别html标记并替换不需要的字符。
String html = "<a href=\"test.html\"> <font></font></a>";
System.out.println(html.replaceAll("(?<=<\\w{1,100})[\\s\\u3000]+", " "));
// -> <a href="test.html"> <font></font></a>