C # функция для перехода к определенной строке в форме WebBrowser - PullRequest
1 голос
/ 08 июля 2019

Я работаю над приложением для проверки запросов веб-службы.Люди, которые будут использовать это приложение, попросили иметь возможность просматривать необработанный 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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...