慕勒3428872
要获取逗号分隔的标签列表,我建议使用命令行,内置AEM查询构建器和(https://stedolan.github.io/jq/)。curljq一般方法:使用查询生成器构建/etc/tags用于“下载”JSONcurl用于“解析”JSON 并创建 CSVjq例:导出以下所有标签及其路径,标题和描述将如下所示:/etc/tagscurl \ --user admin:admin \ --silent \ "http://localhost:4502/bin/querybuilder.json?p.hits=selective&p.limit=-1&p.properties=jcr%3atitle%20jcr%3apath%20jcr%3adescription&path=%2fetc%2ftags&type=cq%3aTag" \ | jq --raw-output '.hits[] | [."jcr:path", ."jcr:title", ."jcr:description"] | @csv' \ > tags.csv这将向本地AEM实例发送请求(),使用密码以用户身份进行身份验证(AEM的默认设置),使用查询生成器API()获取类型为以下的所有资源,以及它将“选择”属性和。GEThttp://localhost:4502adminadmin/bin/querybuilder.jsoncq:Tag/etc/tagsjcr:pathjcr:titlejcr:description生成的 JSON 如下所示:{ "success": true, "results": 2, "total": 2, "more": false, "offset": 0, "hits": [ { "jcr:path": "/etc/tags/experience-fragments", "jcr:description": "Tag structured used by the Experience Fragments feature", "jcr:title": "Experience Fragments" }, { "jcr:path": "/etc/tags/experience-fragments/variation", "jcr:description": "A tag used by the experience fragments variations", "jcr:title": "Variation" }, ]}接下来,上面的命令将生成的 JSON 从查询生成器通过管道传输到 ,后者将使用“query”仅读取数组和该数组中的每个项,以及 。然后将生成的数组用作 的“字符串格式化程序”的输入,这将创建正确的逗号分隔输出。jq.hits[] | [."jcr:path", ."jcr:title", ."jcr:description"]hitsjcr:pathjcr:titlejcr:description@csvjq上面的 JSON 将格式化为:"/etc/tags/experience-fragments","Experience Fragments","Tag structured used by the Experience Fragments feature""/etc/tags/experience-fragments/variation","Variation","A tag used by the experience fragments variations"命令的最后一部分只是将输出重定向到调用的文件,而不是命令行。> tags.csvtags.csvAEM有一个查询构建器调试器,可用于创建查询,然后可以在命令行命令中使用:http://localhost:4502/libs/cq/search/content/querydebug.html我上面使用的查询参数在工具中如下所示:path=/etc/tagstype=cq:Tagp.hits=selectivep.limit=-1p.properties=jcr:title jcr:path jcr:description您可以根据需要添加属性,但要使它们显示在 CSV 中,还必须更新 所使用的查询。jq如果将翻译添加到标记中,它们将存储在名为 的属性中。例如,如果将标记转换为德语,则将具有两个属性:和 。如果你想要翻译,你必须扩展和添加等。jcr:title.<language-code>jcr:titlejcr:title.dep.propertiesjcr:title.de