你在这里: 流行格式 > XML(可扩展标记语言)读写器 > xfMap > 特征映射规则 > 属性元素(处理多个值)

属性元素(处理多个值)

的xfMap 元素提供了两种不同的方法来处理包含多个值的属性;这反映了FME特性将其所有属性解释为(名称、值)对(名称是属性的标识符)的方式。FME特性还可以使用属性列表存储属性集合。属性列表的行为类似于原始属性i。e, (name, value) pairs, except that they contain indices enclosed in braces {} in its attribute name.

当我们想要从XML文档流获取信息到FME特性的属性中,并且该信息映射到具有多个值的属性时,我们可以:

  1. 使用“原语属性”并将多个值附加到一个字符串或中,并使用分隔符
  2. 使用FME属性列表,或者
  3. 从多个值中保留一个属性值。

元素有一个可选的类型属性,该属性指定如何将属性映射到FME特性。的有效值类型属性是:多值,列表,单一,分别对应上述a)、b)及c)选项。

多值的选择

当的值类型属性是多值,然后 元素可以携带一个附加的可选项delim属性,该属性指定用于附加值字符串的分隔符。的delim属性未指定时默认为逗号。

下面的示例将附加值的分隔符设置为管道字符:



还可以在FME特性上创建一个额外的属性,用于计算多值属性中的值的数量。的create-count-attribute时可以使用的可选属性类型属性设置为多值;它的有效值是是的没有,没有为其默认值。

属性的名称基于在表达序列 元素的一个可选前缀和一个强制后缀。

属性的前缀和后缀可以通过count-attribute-name-prefixcount-attribute-name-suffix属性,分别。

这两个count-attribute-name-prefixcount-attribute-name-suffix是可选的属性。的默认值count-attribute-name-prefix是空字符串,而?的默认值为count-attribute-name-suffix。的count-attribute-name-suffix当它存在时,不能是空字符串。

列表选项

当的值类型属性是列表,然后输入XML文档流中的一个多值属性将被转换为正在构建的FME特性的属性列表。

单一的选择

属性的默认值类型属性。具有特定名称的属性在FME特性中只能有一个值。

元素可以携带一个附加的可选项使用属性,该属性指定应使用多个值中的第一个、最后一个或位于第一个或最后一个值之间的任何值。该属性的合法值为:第一个值,最后一个值,或0中的任意自然数…(最后一个值- 1)。当未指定时,则使用属性默认为最后一个值。如果使用自然数,并且如果自然数指定了来自输入XML流的多值属性的数目,则最后一个值将会承担。

例子

下面的示例演示了多个值处理。考虑以下输入XML和xfMap文档:

purchase.xml

           
           
            
             
              广播
             
             
              牙刷
             
             
              毛巾
             
             
              肥皂
             
             
              瓶装水
             
            
           

purchase.xmp

           
           
            
             
              
               
               
              
             
            
            
             
             
              
               
               
                
                 
                
                
                 
                
               
               
               
                
                 
                
                
                 
                
               
               
               
                
                 
                
                
                 
                
               
               
               
                
                 
                
                
                 
                
               
               
               
                
                 
                
                
                 
                
               
               
               
                
                 
                
                
                 
                
               
              
             
            
           

下面显示的日志FME的功能构造时purchase.xmlpurchase.xmp文档被输入到XML阅读器:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
功能类型:购买- 1999 - 10 - 20
属性:第一项“有值无线电”
属性:item-at-3-(第4项)' has value Soap'
属性:items1'有价值收音机,牙刷,毛巾,肥皂,瓶装水'
属性:items2'有价值收音机:牙刷:毛巾:肥皂:瓶装水'
属性:最后一项“瓶装水有价值”
属性:list-attr{0}' has value Radio'
属性:list-attr{1}' has value牙刷'
属性:list-attr{2}' has value Towel'
属性:list-attr{3}' has value Soap'
属性:list-attr{4}' has value瓶装水'
属性:xml_type'的值为xml_no_geom'
属性:list-attr{0}'被排序
属性:list-attr{1}'被排序
属性:list-attr{2}'被排序
属性:list-attr{3}'被排序
属性:list-attr{4}'被排序
几何类型:未知(0)
+ = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =