Я новичок в XQuery.XQUERY: Как искать тег XML с несколькими значениями имени
У меня есть два Files- Input.xml и config.xml, я хочу, чтобы иметь возможность найти файл Input.xml и проверьте ВСЕ config.xml SOFFS находятся в Input.xml
Используя пример ниже, я хочу проверить, есть ли soff = ABC и soff = DEF и soff = GHI существуют в input.xml, и если все три найдены в input.xml, я хочу вернуть значение группы в файле config.xml БЕЗ ХАРДОДИРОВАНИЯ
Вот мой Input.xml ...
<SOFF SOFNO="3732" NAME="ABC" ACTION="X">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
</OPNOKEY>
<PARMS QTY="3">
<PARM NAME="#NEW" VALUE="3" ACTION="A"/>
<PARM NAME="#NEW" VALUE="0" ACTION="R"/>
<PARM NAME="#OLD" VALUE="3" ACTION="X"/>
</PARMS>
<ATTRS QTY="0"/>
</SOFF>
<SOFF SOFNO="3735" NAME="DEF" ACTION="R">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
<OPNO>00104</OPNO>
</OPNOKEY>
<PARMS QTY="1">
<PARM NAME="INSTL" VALUE="GHI" ACTION="R"/>
</PARMS>
<ATTRS QTY="0"/>
</SOFF>
<SOFF SOFNO="2959" NAME="STB3" ACTION="R">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
<OPNO>00104</OPNO>
<OPNO>00105</OPNO>
</OPNOKEY>
<PARMS QTY="0"/>
<ATTRS QTY="0"/>
</SOFF>
<SOFF SOFNO="2958" NAME="JKL" ACTION="R">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
<OPNO>00104</OPNO>
<OPNO>00106</OPNO>
</OPNOKEY>
<PARMS QTY="0"/>
<ATTRS QTY="0"/>
</SOFF>
<SOFF SOFNO="2957" NAME="MNO" ACTION="R">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
<OPNO>00104</OPNO>
<OPNO>00107</OPNO>
</OPNOKEY>
<PARMS QTY="0"/>
<ATTRS QTY="0"/>
</SOFF>
<SOFF SOFNO="3349" NAME="PQR" ACTION="A">
<OPNOKEY>
<OPNO>00042</OPNO>
<OPNO>00045</OPNO>
<OPNO>00069</OPNO>
<OPNO>00103</OPNO>
<OPNO>00110</OPNO>
</OPNOKEY>
<PARMS QTY="0"/>
<ATTRS QTY="0"/>
</SOFF>
Вот мой config.xml ...
<?xml version="1.0" encoding="UTF-8"?>
<subscriptionmappings>
<soff name="ABC">
<mandatorysoffs>
<soff name="DEF"/>
<soff name="GHI"/>
</mandatorysoffs>
<subscribergroup>sVOD-KidsSuite</subscribergroup>
</soff>
</subscriptionmappings>
Вот, насколько я получаю, я не могу показаться, чтобы выяснить, как проверить для нескольких Soff в пределах где п, я полагаю, мне нужно для цикла или что-то подобное ...
For $i in $config/mandatorysoffs/soff
where ($input/SOFF/@NAME = $config/soff/@name
and $input/SOFF/@NAME = $config/mandatorysoffs/soff/@name
and $input/SOFF/@NAME = $config/mandatorysoffs/soff/@name)
return $config/subscribergroup/text()
Я совершенно не знал о выражении xquery/quantified. Полезно знать, спасибо за вашу помощь. Была огромная помощь! -Jeremy – jhynes