Show Menu
主题×

XML 解码器组

将XML文件作为日志源进行处理,以定义用于从XML文件提取数据的解码器。
为XML日志源定义XML解码器组需要了解XML文件的结构和内容、要提取的数据以及存储该数据的字段。 本节提供了您可以为解码器指定的参数的基本描述。您使用任何解码器的方式取决于包含源数据的 XML 文件。
有关 XML 日志源的格式要求信息,请参阅 Log Sources(日志源) . 在定义 XML 解码器时如需帮助,请联系 Adobe。
XML 解码器的顶级是解码器组 (XMLDecoderGroup),这是一组用于从特定格式的 XML 文件提取数据的解码器表。如果您的 XML 文件格式各不相同,则必须为每种格式定义一个解码器组。每个解码器组都包含一个或多个解码器表。
下表描述了Tables参数和定义XML解码器组时必须指定的所有子参数。
参数 描述
表格
解码器组中的每个表都表示一级要从 XML 文件中提取的数据。例如,如果您想要提取有关访客的数据,则需要创建一个解码器表,其中包含要对每个访客提取的信息。您还可以在解码器表内创建解码器表(请参阅 Children(子项))。
向解码器组中添加表
  • 右键单击 ,然后单击 新增 > XMLDecoderTable
Fields(字段)
存储数据的扩展字段(例如 x-trackingid、x-email)。字段中存储的数据由“路径”和/或“运算”子字段确定。
“路径”是结构化的 XML 文件内的字段级别。字段路径对应于定义该字段的表路径。示例包括 tag.tag.tag tag.tag.tag.@attribute 。请注意,路径区分大小写。
“运算”应用于指定路径中的每一行以生成输出。可用运算如下:
  • LAST: 字段获取路径在 XML 文件中最后一次出现的值。
  • RANDOM: 为字段分配随机值。如果您需要生成唯一的 id(例如对于 x-trackingid 字段),则此运算非常有用。
  • INHERIT :定义的字段从父表的对应字段继承其值。
  • " 常量 ": 常量必须用引号引住。您可以使用常量运算来检查是否存在特定的路径;如果存在该路径,则为字段分配该常量的值。
向解码器表中添加字段
  • 右键单击 字段 ,然后单击 新增 > XMLDecoderField 。根据需要定义“字段”、“运算”和“路径”。
Path(路径)
解码器表包含其信息的结构化 XML 文件内的级别。对于子 XML 解码器表,路径是相对于父表路径的。请注意,路径区分大小写。
例如,如果 XML 文件包含以下结构:
<visitor>
    
     
    
    ...
    
    & nbsp;
    
    &/visitor& gt;
    
    & lt;/logdata& gt;& nbsp</code> <p>则路径为<span class="filepath"> logdata.visitor </span>。 </p> </td>

此参数的值应该始终为“日志条目”。
注意:在未咨询 Adobe 的情况下,请勿更改此值。
可选。一个或多个嵌入的解码器表。每个子项都包含上述的 Fields(字段)、Path(路径)和 Table(表)参数。
向解码器表中添加子项
  • 右键单击 子项 ,然后单击 新增 > XMLDecoderTable 。根据需要定义“字段”、“运算”和“路径”。
若要将 XML 文件用作数据集的日志源,必须定义 XML 解码器组和表以提取要处理到数据集中的信息。在此示例中,您将了解如何为 Web 数据集的示例 XML 日志源定义解码器组和表。
以下XML文件包含有关网站访客的信息,包括Experience Cloud ID、电子邮件地址、实际地址以及有关访客页面查看次数的信息。
由于我们有一个 XML 文件,因此只需要一个解码器组,我们将该解码器组命名为“Sample XML Format”。此解码器组应用到与此文件具有相同格式的其他任何 XML 文件。若要开始在此解码器组内构建 XML 解码器表,我们必须首先确定要提取哪些信息以及将存储数据的字段。
在此示例中,我们提取有关访客以及与该访客相关的页面查看的信息。为此,我们创建包含访客相关信息的顶级(父)XML 解码器表,以及包含访客页面查看相关信息的嵌入(子)XML 解码器表。
用于父(访客)表的信息如下所示:
  • XML 文件中每个数据行的数据类型标识符。我们使用 VISITOR 作为标识符,以便快速识别与访客(而不是页面查看)相关的数据行。我们可以将此值存储在 x-rowtype 字段中。
  • 访客的 ID,我们将其存储在 x-trackingid 字段中。
  • 访客的电子邮件地址 (contact.email),我们将其存储在 x-email 字段中。
  • 访客的注册状态。如果访客是已注册的用户,我们可以在 x-is-registered 字段中存储值“1”。
  • The Path value is logdata.visitor, and the Table value is Log Entry. 有关这些参数的信息,请参阅上面的 XMLDecoderGroup 表。
用于子(页面查看)表的信息如下所示:
  • XML 文件中每个数据行的数据类型标识符。我们使用 "PAGEVIEW" 作为标识符,以便快速识别与访客的页面查看(而不只是访客)相关的数据行。我们将此值存储在 x-rowtype 字段中。
  • 访客的 ID。此值从父表中继承,并存储在 x-trackingid 字段中。
  • 每次页面查看的时间戳,存储在 x-event-time 字段中。
  • 每次页面查看的 URI,存储在 cs-uri-stem 字段中。
  • “路径”值为 pageview,“表”值为“日志条目”。有关这些参数的信息,请参阅上面的 XMLDecoderGroup 表。
The following screen capture shows a portion of Log Processing Dataset Include file with the resulting XML decoder group for the sample XML file based on the discussed structure of the parent and child XML decoder tables.
为示例 XML 文件显示此解码器输出的表如下所示:
x-rowtype
cs--uri-stem
x-email
x-is-registered
x-event-time
x-tracking-id
VISITOR
1
1
PAGEVIEW
/index.html
2006-01-01 08:00:00
1
PAGEVIEW
/
2006-01-01 08:00:30
1
您可以在 Data Workbench 中使用字段查看器界面创建与上面类似的表。有关字段查看器界面的信息,请参阅 数据集配置工具

使用#value on XML元素读取其属性值

You can now use the #value tag in XML paths to pull the value of an XML element.
例如,以前指定的路径 <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