2017-08-15 16 views
0

Ich habe diese SOAP-Antwort vom Testen mit HP LoadRunner 12.53. Ich brauche einen Wert zu extrahieren halten immer „Keine Termine für die spezifische Abfrage gefunden wurden“ die lr_xml_get_values ​​Funktion:Funktion von lr_xml_get_value schlägt fehl

lr_xml_extract("XML={RESPONSE}", 
     "XMLFragmentParam=OutputParam", 
     "Query=/Envelope/Body/TimeExpenseAcknowledgmentCBM/RequestID/text()", 
     LAST); 

Hier ist meine Antwort:

"RESPONSE" = "<?xml version="1.0" encoding="utf-8"?> 
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
    <timeexpresp:TimeExpenseAcknowledgmentCBM xmlns:timeexpresp="http://esoa.census.gov/soa/CanonicalModel/Core/CDM/TimeExpenseCDM/V1"> 
     <meta:RequestID xmlns:meta="http://esoa.census.gov/soa/CanonicalModel/Core/Common/V1">**N53e79c17.N60c0f9d8.7.15de03dae49.N3fbe**</meta:RequestID> 
    </timeexpresp:TimeExpenseAcknowledgmentCBM> 
    </soapenv:Body> 
</soapenv:Envelope>" 

Ich brauche den RequestID Wert zu extrahieren in ** BOLD ** Irgendwelche Hilfe ??

+0

Apologies - ich diese Funktion als mein Problem hinzufügen soll: \t \t lr_xml_get_values ​​("XML = {RESPONSE}", "ValueParam = OutputParam", "Abfrage =/Envelope/Body/timeexpresp: TimeExpenseAcknowledgmentCBM", LAST); –

+0

Oberhalb meines Kopfes verwenden Sie Envelope und Body ohne den Namespace, aber TimeExpenseAcknowledgementC BM mit dem Namespace. Hast du versucht, die Namespaces einfach zu ignorieren? – Buzzy

+0

Ja .. funktioniert immer noch nicht. Erhalten Sie denselben Fehler. –

Antwort

0

Dieser arbeitete für mich:

char * xml_input = 
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" 
"<soapenv:Envelope xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" 
"<soapenv:Body>" 
    "<timeexpresp:TimeExpenseAcknowledgmentCBM xmlns:timeexpresp=\"http://esoa.census.gov/soa/CanonicalModel/Core/CDM/TimeExpenseCDM/V1\">" 
     "<meta:RequestID xmlns:meta=\"http://esoa.census.gov/soa/CanonicalModel/Core/Common/V1\">**N53e79c17.N60c0f9d8.7.15de03dae49.N3fbe**</meta:RequestID>" 
    "</timeexpresp:TimeExpenseAcknowledgmentCBM>" 
    "</soapenv:Body>" 
"</soapenv:Envelope>"; 

Action() { 

int i, NumOfValues; 
char buf[64]; 

lr_save_string(xml_input, "XML_Input_Param"); // Save input as parameter 

lr_xml_extract("XML={XML_Input_Param}", 
     "XMLFragmentParam=Result", 
     "Query=/Envelope/Body/TimeExpenseAcknowledgmentCBM/RequestID/text()", LAST); 

lr_output_message(lr_eval_string("Extracted: {Result}")); 

return 0; 
} 

Ausgang:

Action.c(19): "lr_xml_extract" succeeded, 1 match processed 
Action.c(23): Extracted: **N53e79c17.N60c0f9d8.7.15de03dae49.N3fbe** 
+0

Ich bin mir nicht sicher, warum ... aber Ihre Lösung hat nicht funktioniert für mich :(Ich kopierte genau wie gezeigt in ein neues Skript .. aber ich bekomme keine Übereinstimmungen immer noch gefunden. –

+0

Seltsam ... Ich weiß es nicht warum hat es nicht für dich funktioniert, ich bin am 12.5 – Buzzy