当您需要标识消息或变量中的一个或多个节点,以便访问数据或确定是否满足某个条件时,会在编排和平面文件模式定义中用到 XPath 表达式。
XPath 是一种 XML 标准,定义用于标识 XML 文档中的节点或一组节点(称为“节点集合”)的语法。
您可以编辑在以下窗格中生成的缺省 XPath 表达式:
支持 XPath 2.0。
XPath 将 XML 元素和属性的位置描述为与 URL 或本地文件系统目录类似的路径。每个元素或属性均是以根节点开始的某个树中的节点。根节点包含整个树,因此该树中的所有节点都可以通过沿着某条路径向下查找分支来找到。
基本语法是:
/根节点/子节点/.../最终元素节点/根节点/子节点/.../最终元素节点/@属性节点
可通过描述消息的 XML 模式确定该路径。
XPath 使用 @ 符号作为标识属性的速记符。 缺省情况下,不带 @ 或属性:: 前缀的路径标识元素。例如:
/PackingSlip/PONumber/Item标识在 PackingSlip 根节点的 PONumber 中找到的 Item 元素。
节点名还可以与名称空间一起显示,例如 tns:OrderNumber 或 *:Item。冒号前的名称部分是标识名称空间的前缀,冒号是名称空间和节点本地名称之间的定界符。
当文档共享来自多个模式的内容时,名称空间是用于唯一标识元素或属性的 XML 标准。Cast Iron® Studio 会自动为配置文档中使用的 XML 模式分配和管理名称空间。
您可能有时需要在满足某些条件时才选择节点。这些选择条件称为谓词。
可在方括号内定义谓词,例如:
/PV1/PatientDepartment[text()='Nursery']该条件仅当 PatientDepartment 节点中的数据是 Nursery 时,才选择该节点。
/Order/OrderDetail/Item[5]该表达式选择 OrderDetail 内的第 5 个 Item 节点。
XPath 表达式还可以是求值为 true 或 false 的布尔条件。这些表达式可用于选择特定节点,或仅标识必须满足的某个条件。您可以使用表达式构建器帮助定义条件。可以出现在表达式中的 XPath 运算符包括:
concat('New Order # ',/Orders/Order/OrdNumber)
count(/Orders/Order)
normalize-space(/Job/Address/Line1)
number(/PurchaseOrder/POTotal)
string(/PurchaseOrder/VendorID)
translate(/Issue/ShortDescr,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
有关 XPath 函数的完整列表,请参阅 XPath 规范(http://www.w3.org/TR/xpath)。
可以通过使用 XPath 评估程序,根据 XML 测试数据测试您的 XPath 表达式。