Я пишу код для извлечения определенного значения из Stringbuilder.Идея заключается в том, что я отправляю форму в Moneris - Платежный шлюз (я использую образец ключа и идентификатор, поэтому здесь не упоминается конфиденциальная информация) для получения динамически сгенерированного ключа от Moneris.
Пожалуйста, смотрите мой код ниже:
StringBuilder sb = new StringBuilder();
sb.Append("<html>");
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
sb.AppendFormat("<form name='form' action='{0}' method='post'>", "https://esqa.moneris.com/HPPDP/index.php");
sb.AppendFormat("<input type='hidden' name='ps_store_id' value='{0}'>", "R6SXStore3");
sb.AppendFormat("<input type='hidden' name='hpp_key' value='{0}'>", "hpZPXLXZNBLF");
sb.AppendFormat("<input type='hidden' name='charge_total' value='{0}'>", "2.00");
sb.AppendFormat("<input type='hidden' name='hpp_preload' value='{0}'>", "");
sb.AppendFormat("<input type='hidden' name='order_id' value='{0}'>", "");
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
Response.Write(sb.ToString()); // This is submitting the above form to the moneris (third party payment website and throwing values in a kind of XML format).
Пожалуйста, смотрите скриншот https://snag.gy/OHbk6y.jpg того, что я получаю от Moneris.
Я заинтересован визвлечение значения из узла «тикета», который я выделил на снимке экрана выше.
Это код, который я пишу, чтобы получить значение из узла «тикета».
XmlDocument xmlDoc = new XmlDocument();
// string myXML = @"<!--?xml version='1.0' standalone='yes'?--><html><head></head><body><response><hpp_id>R6SXStore3</hpp_id><ticket>hpp1529956212E2mefmVB93Yu2taJy</ticket><order_id></order_id><response_code>1</response_code></response></body></html>";
string myXML = sb.ToString();
xmlDoc.LoadXml(myXML);
XmlNodeList parentNode = xmlDoc.GetElementsByTagName("response");
string xticket;
string xhpp_id;
foreach (XmlNode childrenNode in parentNode)
{
HttpContext.Current.Response.Write(childrenNode.SelectSingleNode("ticket").InnerText);
}
Response.End();
Ошибка:
Когда я запускаю вышеупомянутый код, я вижу эту ошибку: Пожалуйста, смотрите скриншот https://snag.gy/PJMKqL.jpg
Однако, когда я отменяю комментарий моего кода, где я передаюжестко закодированное значение в переменной "myXML", тогда я получаю свой результат отлично.Значение в жестком коде - это то, что я извлекаю из исходного кода браузера, когда получаю ответ от Moneris.
Не могли бы вы помочь мне решить эту проблему.