0
Ich habe ein XML-Dokument, das so aussieht:Wrong XPathExpression
<ns0:SIM_StdNeunNulldelticket xmlns:ns0="http://DoX.BAI.BT.Schemas/001">
<ns0:SIM_StdNeunNulldelticket PacketIds="b1cd4e60-0526-4d88-85a3-baabadc4b30f" RecIds="ae319e04-b5ce-4d67-8506-bfb09d9643f1" RecVersion="94c990aa-e98e-4f5c-8e21-9111ad4de227" SendingUserName="LAB" ExportId="23881aa6-3ba6-11e7-8d4d-901b0e8bf24b">
<ns0:Cmsnet version="9.0">
<ns0:delticket prim_client="1" prim_firmno="1" prim_plantno="3" prim_proddate="2017-05-18T00:00:00" prim_dtno="361487">
<ns0:client>1</ns0:client>
<ns0:firmno>1</ns0:firmno>
<ns0:plantno>3</ns0:plantno>
<ns0:proddate>2017-05-18T00:00:00</ns0:proddate>
<ns0:dtno>361487</ns0:dtno>
<ns0:mutation>mtProdStart</ns0:mutation>
<ns0:batchid>4308</ns0:batchid>
</ns0:delticket>
</ns0:Cmsnet>
</ns0:SIM_StdNeunNulldelticket>
<ns0:SIM_StdNeunNulldelticket PacketIds="b1cd4e60-0526-4d88-85a3-baabadc4b30f" RecIds="1f12eabb-d2c2-4f15-948a-abed3eca5f3a" RecVersion="dfb8882a-606f-44e2-8c76-5d68274a8ce9" SendingUserName="LAB" ExportId="23881aa7-3ba6-11e7-8d4d-901b0e8bf24b">
<ns0:Cmsnet version="9.0">
<ns0:delticket prim_client="1" prim_firmno="1" prim_plantno="6" prim_proddate="2017-05-18T00:00:00" prim_dtno="693311">
<ns0:client>1</ns0:client>
<ns0:firmno>1</ns0:firmno>
<ns0:plantno>6</ns0:plantno>
<ns0:proddate>2017-05-18T00:00:00</ns0:proddate>
<ns0:dtno>693311</ns0:dtno>
<ns0:mutation>mtProdEnd</ns0:mutation>
<ns0:batchid>4306</ns0:batchid>
</ns0:delticket>
</ns0:Cmsnet>
</ns0:SIM_StdNeunNulldelticket>
</ns0:SIM_StdNeunNulldelticket>
Mein XPathExpression ist
/*[//*[local-name() = 'delticket'] and //*[@prim_plantno='3']]
so was ich will, ist nur die ... wo plantno = 3
<ns0:SIM_StdNeunNulldelticket xmlns:ns0="http://DoX.BAI.BT.Schemas/001">
<ns0:SIM_StdNeunNulldelticket PacketIds="b1cd4e60-0526-4d88-85a3-baabadc4b30f" RecIds="ae319e04-b5ce-4d67-8506-bfb09d9643f1" RecVersion="94c990aa-e98e-4f5c-8e21-9111ad4de227" SendingUserName="LAB" ExportId="23881aa6-3ba6-11e7-8d4d-901b0e8bf24b">
<ns0:Cmsnet version="9.0">
<ns0:delticket prim_client="1" prim_firmno="1" prim_plantno="3" prim_proddate="2017-05-18T00:00:00" prim_dtno="361487">
<ns0:client>1</ns0:client>
<ns0:firmno>1</ns0:firmno>
<ns0:plantno>3</ns0:plantno>
<ns0:proddate>2017-05-18T00:00:00</ns0:proddate>
<ns0:dtno>361487</ns0:dtno>
<ns0:mutation>mtProdStart</ns0:mutation>
<ns0:batchid>4308</ns0:batchid>
</ns0:delticket>
</ns0:Cmsnet>
</ns0:SIM_StdNeunNulldelticket>
</ns0:SIM_StdNeunNulldelticket>
aber ich bekomme immer beide (Plantno 6 und 3). Mein Problem ist, dass ich keine Ahnung habe wie ich meine XPathExpression schreiben soll.
Ich bin dankbar für jede Antwort! Versuchen
ok, ich habe gerade erkannte ich Was'n bin ganz klar in meiner Frage: Ich brauche das ... . wo plantno = 3. Wenn ich deinen Vorschlag verwende, bekomme ich aber ich brauche auch die
KatharinaG
versuche '// * [./*/* [local-name() = 'delticket' und @ prim_plantno = '3']] ' – Andersson
Der Filter funktioniert genau so, wie ich es wollte, danke! – KatharinaG