阅读有关Data Workbench 生命周期终止公告.
将XML文件处理为日志源,以定义解码器以从XML文件中提取数据。
为XML日志源定义XML解码器组需要了解XML文件的结构和内容、要提取的数据以及存储该数据的字段。 本节提供了您可以为解码器指定的参数的基本描述。您使用任何解码器的方式取决于包含源数据的 XML 文件。
有关 XML 日志源的格式要求信息,请参阅 日志源. 在定义 XML 解码器时如需帮助,请联系 Adobe。
XML 解码器的顶级是解码器组 (XMLDecoderGroup),这是一组用于从特定格式的 XML 文件提取数据的解码器表。如果您的 XML 文件格式各不相同,则必须为每种格式定义一个解码器组。每个解码器组都包含一个或多个解码器表。
下表描述了Tables(表)参数以及定义XML解码器组时必须指定的所有子参数。
参数 | 描述 |
---|---|
表 | 解码器组中的每个表都表示一级要从 XML 文件中提取的数据。例如,如果您想要提取有关访客的数据,则需要创建一个解码器表,其中包含要对每个访客提取的信息。您还可以在解码器表内创建解码器表(请参阅 Children(子项))。 向解码器组中添加表
|
Fields(字段) | 存储数据的扩展字段(例如 x-trackingid、x-email)。字段中存储的数据由“路径”和/或“运算”子字段确定。 “路径”是结构化的 XML 文件内的字段级别。字段路径对应于定义该字段的表路径。示例包括 tag.tag.tag 或 tag.tag.tag.@attribute。请注意,路径区分大小写。 “运算”应用于指定路径中的每一行以生成输出。可用运算如下:
向解码器表中添加字段
|
路径 | 解码器表包含其信息的结构化 XML 文件内的级别。对于子 XML 解码器表,路径是相对于父表路径的。请注意,路径区分大小写。 例如,如果 XML 文件包含以下结构:
|
Table(表) | 此参数的值应该始终为“日志条目”。
注意:在未咨询 Adobe 的情况下,请勿更改此值。 |
Children(子项) | 可选。一个或多个嵌入的解码器表。每个子项都包含上述的 Fields(字段)、Path(路径)和 Table(表)参数。 向解码器表中添加子项
|
若要将 XML 文件用作数据集的日志源,必须定义 XML 解码器组和表以提取要处理到数据集中的信息。在此示例中,您将了解如何为 Web 数据集的示例 XML 日志源定义解码器组和表。
以下XML文件包含有关网站访客的信息,包括Experience CloudID、电子邮件地址、物理地址以及有关访客页面查看次数的信息。
由于我们有一个 XML 文件,因此只需要一个解码器组,我们将该解码器组命名为“Sample XML Format”。此解码器组应用到与此文件具有相同格式的其他任何 XML 文件。若要开始在此解码器组内构建 XML 解码器表,我们必须首先确定要提取哪些信息以及将存储数据的字段。
在此示例中,我们提取有关访客以及与该访客相关的页面查看的信息。为此,我们创建包含访客相关信息的顶级(父)XML 解码器表,以及包含访客页面查看相关信息的嵌入(子)XML 解码器表。
用于父(访客)表的信息如下所示:
用于子(页面查看)表的信息如下所示:
以下屏幕截图显示了 Log Processing Dataset Include 文件,其中根据父XML解码器表和子XML解码器表的讨论结构为示例XML文件生成XML解码器组。
为示例 XML 文件显示此解码器输出的表如下所示:
x-rowtype | cs–uri-stem | x-email | x-is-registered | x-event-time | x-tracking-id |
---|---|---|---|---|---|
VISITOR | foo@bar.com | 1 | 1 | ||
PAGEVIEW | /index.html | 2006-01-01 08:00:00 | 1 | ||
页面查看 | / | 2006-01-01 08:00:30 | 1 |
您可以在 Data Workbench 中使用字段查看器界面创建与上面类似的表。有关字段查看器界面的信息,请参阅 数据集配置工具.
您现在可以使用 #value 标记,以提取XML元素的值。
例如,以前指定的路径为 <Hit><Page name="Home Page" index="20">home.html</Page></Hit>
使您无法读取 <Page>
标记。 读取 <Page>
标记及其属性,您可以 Hit.Page.@name 和 Hit.Page.@index 分别进行。 您还可以使用 Hit.Page.#value
表达式。
例如,您可以读取标记的值 <varValue>
通过在解码器中添加以下字段:
7 = XMLDecoderField:
Field = string: x-varvalue-name-added
Operation = string: LAST
Path = string:
<b>#value</b>
Path = string: varValue
Table = string: Log Entry
同样,您也可以读取标记的值 <Rep>
通过在解码器中添加以下字段:
7 = XMLDecoderField:
Field = string: x-rep-name-added
Operation = string: LAST
Path = string: Rep.#
<b>value</b>
Path = string: Reps
Table = string: Log Entry
相反,要读取无属性的元素标记的值,请 <text>
标记下 <line>
标记,且其值可通过提供“ text“ ”,或使用 line.text,具体取决于您构建解码器的方式。
2 = XMLDecoderField:
Field = string: x-chat-text
Operation = string: LAST
Path = string:
<b>text</b>
Path = string:
<b>line</b>
Table = string: Log Entry