我有以下XML结构:XPath查询随着多个阵列
<xml>
<header>
(Tags goes here)
</header>
<listItem>
<id></id>
...
(Sort of data)
...
<arrayType1>
<id></id>
<parentId></parentId>
<!-- Key: Data to lookup and get the entire structure (listItem) with XPath-->
<key></key>
</arrayType1>
<arrayType2>
<id></id>
<parentId></parentId>
<!-- Key: Data to lookup and get the entire structure (listItem) with XPath-->
<key></key>
</arrayType2>
</listItem>
<listItem>
(Exactly same structure with different data as above)
</listItem>
</xml>
标签<parentId>
具有<listItem><id>
标签的相同的数据(不要与各arrayType中的<id>
混淆)。
我需要一个XPath表达式,该表达式返回只有数据的<parentId>
或<listItem><id>
(或者,默认情况下,返回整个arrayTypeX,稍后再处理另一个XSLT转换)。
我需要在IBM Integration Designer(Websphere ESB)的XSLT Map中进行转换,但是我对XPath表达式很困惑,但重点仅仅在于构建XPath Expression。
我试图与此表达式:
/的listItem [arrayType1 [键= '值']] /的parentID
但我不知道的XPath支持内部那种语法(阵列数组寻找一个特定的值)。该表达式总是返回列表的第一个ID。
每个项目的基数是:
header: [0..1]
listItem: [0..*]
arrayType1: [0..*]
arrayType2: [0..*]
你能摆脱这个一些轻?
由于
编辑:这是一个例子:
只有具有<xml>
<header>
(Tags goes here)
</header>
<listItem>
<id>1</id>
<arrayType1>
<id>1000</id>
<parentId>1</parentId>
<key>abc</key>
</arrayType1>
<arrayType1>
<id>1500</id>
<parentId>1</parentId>
<key>mno</key>
</arrayType1>
<arrayType2>
<id>2000</id>
<parentId>1</parentId>
<key>def</key>
</arrayType2>
</listItem>
<listItem>
<id>2</id>
<arrayType1>
<id>3000</id>
<parentId>2</parentId>
<key>ghi</key>
</arrayType1>
<arrayType2>
<id>4000</id>
<parentId>2</parentId>
<key>jkl</key>
</arrayType2>
</listItem>
</xml>
的<key>
(例如, “GHI”)中,i期望获得<id>
或<parentId>
“2”,与XPath表达式。
请先更正此行:'我需要一个返回或只有数据的XPath表达式,并且还请提供一个我期待的示例输入/输出 – sunbabaphu
@sunbabaphu我的错误,这是一个错误代码格式。另外我附上了一个我想要得到的例子。 –