Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除html中的其他语言空间_Java_Html_Html Parsing_Jericho Html Parser - Fatal编程技术网

Java 删除html中的其他语言空间

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

我想使用StringUtils.strip()修剪标记名和属性之间的空格。因为我有一些空间是不能被 以下是杰里科的方法:

  • 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>