【问题标题】:How to export AEM tags into Excel如何将 AEM 标签导出到 Excel
【发布时间】:2019-04-05 06:30:53
【问题描述】:

昨天我不得不将所有 AEM 标签 导出到 Excel 文件中。在寻找最佳解决方案时,我发现几乎每个人都建议编写自定义代码,将所有标签输入到 Excel 文件中。

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

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

【问题讨论】:

    标签: java tags aem


    【解决方案1】:

    要获得逗号分隔的标签列表,我建议使用命令行、内置AEM query buildercurljq (https://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 实例 (http://localhost:4502) 发送 GET 请求,以用户 admin 身份验证,密码为 admin(AEM 的默认设置),使用查询构建器 API (/bin/querybuilder.json)获取/etc/tags下方类型为cq:Tag的所有资源,并且在这些资源中“选择”属性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 数组和该数组中的每个项目 @987654345 @、jcr:titlejcr:description。然后将生成的数组用作jq@csv“字符串格式化程序”的输入,这将创建正确的逗号分隔输出。

    上面的 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. 编辑创建的包
    4. 完成保存
    5. 构建
    6. 下载

    那么您在 {download_package_name}/jcr_root/etc/tags 中拥有所有标签。

    现在有几种方法可以将下载的标签下载到 Excel 文件中。这是在 Windows 上执行此操作的方法 -

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

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

    dir /a /s /b > 文件列表.txt

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

    【讨论】:

      【解决方案3】:

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

      参考文献

      【讨论】:

      【解决方案4】:

      我无权评论已接受的答案,但我认为添加到已接受的优秀答案中会很有用:如果您使用的是 >= 6.4,那么您可能需要将查询中的路径更改为/content/cq:tags (1) 或查询两个路径,如果您的安装随时间升级并且您有长期存在的标签。尽管在查看 http://localhost:4502/tagging 时我可以看到数百个点击,但我得到了 0 次点击

      (1)https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/tagging-issue-in-aem-6-4/qaq-p/320994

      希望这种不回答的问题不会被过度反对。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-06
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 2018-02-10
        • 1970-01-01
        相关资源
        最近更新 更多