我無法弄清楚如何過濾這個xml片段。我想獲得的svcProvNbr
其中userServiceCde = OASV
在xml中使用xquery過濾結果集sql列
<dataExtract xmlns="http://dtd-sirvahub.sirva.com/xml/SCHEMA/ATS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dtd-sirvahub.sirva.com/xml/SCHEMA/ATS http://dtd-sirvahub.sirva.com/xml/SCHEMA/ATS/dataExtract.xsd">
<shipment>
<location lctnSeqNbr="001">
<lctnServiceProvider>
<userServiceCde>EASV</userServiceCde>
<svcProvNbr>1470-000</svcProvNbr>
<svcProvTypeCde>A</svcProvTypeCde>
</lctnServiceProvider>
<lctnServiceProvider>
<userServiceCde>OASV</userServiceCde>
<svcProvNbr>1470-000</svcProvNbr>
<svcProvTypeCde>A</svcProvTypeCde>
</lctnServiceProvider>
</location>
</shipment>
</dataExtract>
我已經嘗試了幾種不同的方法,但沒有運氣
xmlalliedxml.query
('declare namespace r = "http://dtd-sirvahub.sirva.com/xml/SCHEMA/ATS";
data(/r:dataExtract/r:shipment/r:location[@lctnSeqNbr=sql:variable("@vcSegmentNo")]/r:lctnServiceProvider.userServiceCde[.="OASV"]/r:svcProvNbr)')
和
xmlalliedxml.query
('declare namespace r = "http://dtd-sirvahub.sirva.com/xml/SCHEMA/ATS";
for $sp in /r:dataExtract/r:shipment/r:location[@lctnSeqNbr=sql:variable("@vcSegmentNo")]/r:lctnServiceProvider/r:svcProvNbr
where $sp/r:dataExtract/r:shipment/r:location[@lctnSeqNbr=sql:variable("@vcSegmentNo")]/r:lctnServiceProvider/r:userServiceCde[.="OASV"]
return
$sp')
如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)以精確地設置格式和語法突出顯示它! – 2011-05-27 16:32:08