如何将AEM标记导出到Excel

问题描述 投票:0回答:3

昨天我不得不将所有AEM标签导出到Excel文件中。在浏览最佳解决方案的同时,我发现几乎所有人都建议编写自定义代码,这些代码可以获取所有标签并将其输入Excel文件。

我认为这个解决方案很好,但是因为有很多人第一次做这样的事情,他们可能需要一些时间来弄清楚如何做到这一点。

对于他们,让我们分享一些解决此问题的方法。

java tags aem cq5
3个回答
4
投票

要获得逗号分隔的标签列表,我建议使用命令行,内置AEM query buildercurljqhttps://stedolan.github.io/jq/)。

一般方法:

  1. 使用查询构建器构建/etc/tags的JSON表示
  2. 使用curl“下载”JSON
  3. 使用jq“解析”JSON并创建CSV

例:

导出/etc/tags下面的所有标签及其路径,标题和描述将如下所示:

curl \
    --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实例(GET)发送http://localhost:4502请求,使用密码admin(AEM的默认设置)以用户admin进行身份验证,使用查询构建器API(/bin/querybuilder.json)获取cq:Tag以下类型/etc/tags的所有资源以及这些资源它将“选择”属性jcr: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从查询生成器传递给jq,后者将使用“查询”.hits[] | [."jcr:path", ."jcr:title", ."jcr:description"]只读取hits数组,并且只读取该数组中的每个项目jcr: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.csv的最后一部分只是将输出重定向到名为tags.csv的文件而不是命令行。

AEM有一个查询构建器调试器,您可以使用它来创建查询,然后可以在命令行命令中使用它们:

http://localhost:4502/libs/cq/search/content/querydebug.html

我上面使用的查询参数在工具中看起来像这样:

path=/etc/tags
type=cq:Tag
p.hits=selective
p.limit=-1
p.properties=jcr:title jcr:path jcr:description

您可以根据需要添加属性,但要让它们显示在CSV中,您还必须更新jq使用的查询。

如果您向标记添加翻译,它们将存储在名为jcr:title.<language-code>的属性中。例如,如果您将标记翻译为德语,则会有两个属性:jcr:titlejcr:title.de。如果你想要翻译,你必须扩展p.properties并添加jcr:title.de等。


2
投票

如果您需要导出标签,这里有关于如何轻松导出标签的简单解决方案,然后有几种方法可以在Excel中导入它,而无需为此编写自定义代码。

要导出AEM标记,请执行以下5个步骤:

  1. 打开package manager
  2. 创建包(给它一些有意义的名字)
  3. 编辑创建的包 选择“过滤器”标签 输入要导出的标记的路径(例如:http://localhost:4502/libs/cq/tagging/gui/content/tags.html/etc/tags/geometrixx-outdoors) 您可以在Adobe Experience Manager - >工具 - >常规 - >标签下找到它
  4. 完成,保存
  5. 构建包
  6. 下载包

然后你有{download_package_name} / jcr_root / etc / tags里面的所有标签。

现在有几种方法可以将下载的标签下载到Excel文件中。这是在Windows上如何做到这一点 -

资料来源:Is there a way to export a folder structure into excel?

在Windows资源管理器中找到该文件夹​​,然后右键单击该文件夹并选择“在此处打开命令窗口”。输入以下提示:

dir / a / s / b> filelist.txt

这会为您提供一个保存在顶层文件夹中的文本文件,您可以在笔记本中打开该文件,然后复制并粘贴到Excel文档中。


2
投票

在AEM中有一个GUI可以将内容导出为ex​​cel [几乎]。要在系统中获取标签的tsv文件,可以使用AEM的批量编辑器。导航到服务器上的“/etc/importers/bulkeditor.html”。将路径设置为“/ etc / tags”或子树。在查询字段中键入“type:Tag”。选择需要导出的属性并点击搜索。然后可以通过导出按钮将结果导出到tsv文件。

enter image description here

参考

© www.soinside.com 2019 - 2024. All rights reserved.