Я работаю над приложением для проверки запросов веб-службы.Люди, которые будут использовать это приложение, попросили иметь возможность просматривать необработанный XML запросов / ответов от веб-службы, и для этого я использую веб-браузер и просто указываю на файл, в котором хранится текущая записьвсе запросы / ответы XML.Это позволяет окну свернуть и развернуть элементы XML, а также предлагает цветовое кодирование.
Моя проблема в том, что я хочу иметь возможность перейти к определенной строке или определенной записи XML в представлении браузера.До сих пор я не смог найти ничего, что позволяло бы линейную навигацию в этой форме.Я подумал, что, возможно, я мог бы просто реализовать функцию поиска, которая просто ищет запись в WebBrowser, но не похоже, что поиск также поддерживается.Есть ли метод, который позволяет подобную функциональность, что я хочу?Или есть способ обойти это?
- РЕДАКТИРОВАТЬ -
Я добавил пример кода того, что я попробовал из решения ниже.Ниже приведен пример XML-кода, который я хочу проанализировать, а затем моя реализация предложенного решения.Я ищу запись "SAMP_DriverDetail_07-08-2019_T_14-51-19".
<ResponseHistory>
<SAMP_DriverList_07-08-2019_T_14-51-19>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
<SOAP-ENV:Body>
<m:SAMP_DriverListResponse xmlns:m="sample.com">
<Drivers xsi:type="xsd:int">0</Drivers>
<Scroll xsi:type="xsd:int">0</Scroll>
<SAMPURL xsi:type="xsd:string">http://BLAHBLAH</SAMPURL>
<DrvList xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="sam:PDRV_Struct[]" xmlns:sam="sample.com" />
</m:SAMP_DriverListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</SAMP_DriverList_07-08-2019_T_14-51-19>
<SAMP_DriverDetail_07-08-2019_T_14-51-19>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:q1:SAMP_DriverDetail</faultcode>
<faultstring>Method not available</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</SAMP_DriverDetail_07-08-2019_T_14-51-19>
</ResponseHistory>
private void Jump(object sender, EventArgs e)
{
JumpToElement("SAMP_DriverDetail_07-08-2019_T_14-51-19");
}
private void JumpToElement(string tag)
{
var element = XmlView.Document.GetElementsByTagName(tag).OfType<HtmlElement>().FirstOrDefault();
if (element != null)
{
XmlView.Document.Window.ScrollTo(0, element.OffsetRectangle.Top);
}
}