对 XML 消息中的路径和类型执行操作

引用或设置 XML 消息体内的元素时,必须在 ESQL 字段引用中使用正确的相关名来对它们进行寻址。下表列出了所有有效元素的相关名。有关 XmlDec 和 DocTypeDecl 属性的相关名,请参阅访问 XML 消息中的属性访问 XML 消息中的 XmlDecl访问 XML 消息中的 DocTypeDecl有关字段引用的信息,请参阅 ESQL 字段引用

语法元素 相关名
CDataSection (XML.CDataSection)
Comment (XML.Comment)
Content (XML.Content) - 也支持 (XML.pcdata)
Element (XML.Element) - 也支持 (XML.tag)
EntityReferenceEnd (XML.EntityReferenceEnd)
EntityReferenceStart (XML.EntityReferenceStart)
ProcessingInstruction (XML.ProcessingInstruction)
WhiteSpace (XML.WhiteSpace)

当路径元素中没有类型时,语法元素的类型就不重要了。即,路径元素 name 匹配任何名称为 name 的语法元素(无论它的元素类型是什么)。以相同的方式,路径元素可以指定名称而不是类型,路径元素可以指定类型而不是名称。这种类型的路径元素与任何具有指定类型的语法元素相匹配(无论它的名称是什么)。下面是这样的示例:

 FIELDNAME(InputBody.(XML.Element)[1 ])

此示例返回消息体中第一个元素的名称。以下一般 XML 示例显示了何时有必要在路径中使用类型:

<tag1 attr1='abc'>
  <attr1>123<attr1>
</tag1>

路径 InputBody.tag1.attr1 引用称为 attr1 的属性,因为属性出现在 XML 解析器生成的语法树中的嵌套元素之前。要引用称为 attr1 的元素,必须使用路径:

InputBody.tag1.(XML.Element)attr1

在要显示引用的是什么语法元素的情况下,包含类型总是可取的。

下列 ESQL:

SET OutputRoot.XML.Element1.(XML.Element)Attribute1 = '123';

实际上是以下全限定路径的缩写:

SET OutputRoot.XML.(XML.Element)Element1.(XML.Element)Attribute1.
	(XML.Content) = '123';

请查看以下 XML:

 <?xml version="1.0"?>
<!DOCTYPE Order SYSTEM "Order.dtd"> <Order>
   <ItemNo>1</ItemNo>
   <Quantity>2</Quantity>
</Order>

路径 InputBody.Order 将引用 (XML.DocTypeDecl) 语法元素,因为此项在语法树中显示在 XML 主体前面,并具有相同的名称。要引用元素 ItemNo,需要使用路径 InputBody.(XML.Element)Order.ItemNo。下面的示例使用以下 XML 输入消息演示了相同的概念:

<doc><i1>100</i1></doc>

要将 112233 指派到 <i1>,您必须使用以下 ESQL 表达式:

SET OutputRoot.XML.(XML.Element)doc.I1=112233;
相关概念
消息流概述
ESQL 概述
消息建模
相关任务
设计消息流
定义消息流内容
管理 ESQL 文件
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
FIELDNAME 函数
SET 语句
ESQL 字段引用
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac17280_