Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 如何获取Jsoup白名单的有效标记列表?_Java_Coldfusion_Jsoup - Fatal编程技术网

Java 如何获取Jsoup白名单的有效标记列表?

Java 如何获取Jsoup白名单的有效标记列表?,java,coldfusion,jsoup,Java,Coldfusion,Jsoup,如何获取给定Jsoup的所有有效标记的列表白名单 我在目前的文档中找不到这样的函数。我使用ColdFusion,但是java解决方案或提示就可以了。我想我可以翻译它。你可以检查一下,你要的是标记名集。该类不提供任何getter 您可以做的是: 下载jsoup的源代码,只需编辑白名单类并添加一个getter。你甚至可以在那之后提出拉拽请求 获取每个白名单类别的默认标记,并将它们保存在您可以访问的变量中 最后一种选择是使用反射来访问私有变量,但这不是一种好的做法,因为还有其他更干净的方法来实现您想要

如何获取给定Jsoup的所有有效标记的列表
白名单

我在目前的文档中找不到这样的函数。我使用ColdFusion,但是java解决方案或提示就可以了。我想我可以翻译它。

你可以检查一下,你要的是
标记名集。该类不提供任何getter

您可以做的是:

  • 下载jsoup的源代码,只需编辑
    白名单
    类并添加一个getter。你甚至可以在那之后提出拉拽请求
  • 获取每个白名单类别的默认标记,并将它们保存在您可以访问的变量中
  • 最后一种选择是使用反射来访问私有变量,但这不是一种好的做法,因为还有其他更干净的方法来实现您想要的

  • 如果您想执行反射路径,可以执行以下操作,即获取对
    标记名
    集的访问权,将其转换为
    org.jsoup.safety.Whitelist$TagName
    对象(包含标记名)的数组,然后将这些对象的
    toString()
    值附加到另一个数组中

    <cfscript>
    
    whitelist = createObject("java", "org.jsoup.safety.Whitelist");
    collection = [];
    tags = whitelist.getClass().getDeclaredField("tagNames");
    tags.setAccessible(true);
    
    // this portion uses the relaxed whitelist as an example
    for (tag in tags.get(whitelist.relaxed()).toArray()) {
        arrayAppend(collection, tag.toString());
    }
    
    writeDump(collection);
    
    </cfscript>
    
    
    白名单=createObject(“java”,“org.jsoup.safety.whitelist”);
    集合=[];
    tags=whitelist.getClass().getDeclaredField(“标记名”);
    tags.setAccessible(true);
    //这一部分以放松的白名单为例
    for(tags.get(whitelist.relaxed()).toArray()中的标记){
    arrayAppend(collection,tag.toString());
    }
    书面文件(收集);
    

    如果您需要属性和/或协议字段,这是一种类似的方法,但由于它们是映射,因此还有更多内容需要迭代。

    @Thorsten-也是FWIW,我不知道您的最终目标是什么,但请记住,白名单不仅仅涉及标记。它还可以涉及属性、协议、电子技术。取决于你在做什么,这可能与你的应用程序有关…非常感谢,托尼!在您的帮助下,我可以实现所有必需的jsoup功能。