我正在尋找從webBrowser控件解析XML本身。從webBrowser控件中提取XML
我已經嘗試使用webBrowser1.DocumentText.ToString()
來獲取XML,但它並沒有給出XML本身,它給出了網頁源代碼以及提供頁面的所有CSS等。這方面的一個例子如下:
<?xml version="1.0"?>
<test>
<example>Hello</example>
</test>
這就是我想要的東西有輸出,而是做webBrowser.DocumentText.ToString()
給出如下:
<HTML><HEAD>
<STYLE>BODY{font:x-small 'Verdana';margin-right:1.5em}
.c{cursor:hand}
.b{color:red;font-family:'Courier New';font-weight:bold;text-decoration:none}
.e{margin-left:1em;text-indent:-1em;margin-right:1em}
.k{margin-left:1em;text-indent:-1em;margin-right:1em}
.t{color:#990000}
.xt{color:#990099}
.ns{color:red}
.dt{color:green}
.m{color:blue}
.tx{font-weight:bold}
.db{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;border-left:1px solid #CCCCCC;font:small Courier}
.di{font:small Courier}
.d{color:blue}
.pi{color:blue}
.cb{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;font:small Courier;color:#888888}
.ci{font:small Courier;color:#888888}
PRE{margin:0px;display:inline}</STYLE>
<SCRIPT><!--
function f(e){
if (e.className=="ci"){if (e.children(0).innerText.indexOf("\n")>0) fix(e,"cb");}
if (e.className=="di"){if (e.children(0).innerText.indexOf("\n")>0) fix(e,"db");}
e.id="";
}
function fix(e,cl){
e.className=cl;
e.style.display="block";
j=e.parentElement.children(0);
j.className="c";
k=j.children(0);
k.style.visibility="visible";
k.href="#";
}
function ch(e){
mark=e.children(0).children(0);
if (mark.innerText=="+"){
mark.innerText="-";
for (var i=1;i<e.children.length;i++)
e.children(i).style.display="block";
}
else if (mark.innerText=="-"){
mark.innerText="+";
for (var i=1;i<e.children.length;i++)
e.children(i).style.display="none";
}}
function ch2(e){
mark=e.children(0).children(0);
contents=e.children(1);
if (mark.innerText=="+"){
mark.innerText="-";
if (contents.className=="db"||contents.className=="cb")
contents.style.display="block";
else contents.style.display="inline";
}
else if (mark.innerText=="-"){
mark.innerText="+";
contents.style.display="none";
}}
function cl(){
e=window.event.srcElement;
if (e.className!="c"){e=e.parentElement;if (e.className!="c"){return;}}
e=e.parentElement;
if (e.className=="e") ch(e);
if (e.className=="k") ch2(e);
}
function ex(){}
function h(){window.status=" ";}
document.onclick=cl;
--></SCRIPT>
</HEAD>
<BODY class="st"><DIV class="e">
<SPAN class="b"> </SPAN>
<SPAN class="m"><?</SPAN><SPAN class="pi">xml version="1.0" </SPAN><SPAN class="m">?></SPAN>
</DIV>
<DIV class="e">
<DIV class="c" STYLE="margin-left:1em;text-indent:-2em"><A href="#" onclick="return false" onfocus="h()" class="b">-</A>
<SPAN class="m"><</SPAN><SPAN class="t">test</SPAN><SPAN class="m">></SPAN></DIV>
<DIV><DIV class="e"><DIV STYLE="margin-left:1em;text-indent:-2em">
<SPAN class="b"> </SPAN>
<SPAN class="m"><</SPAN><SPAN class="t">example</SPAN><SPAN class="m">></SPAN><SPAN class="tx">Hello</SPAN><SPAN class="m"></</SPAN><SPAN class="t">example</SPAN><SPAN class="m">></SPAN>
</DIV></DIV>
<DIV><SPAN class="b"> </SPAN>
<SPAN class="m"></</SPAN><SPAN class="t">test</SPAN><SPAN class="m">></SPAN></DIV>
</DIV></DIV>
</BODY>
</HTML>
我怎樣才能獲得XML本身從Web瀏覽器控制?我試圖解析的XML文件顯示關於用戶的信息,並且它需要cookie。用戶在應用程序嘗試獲取此信息之前先登錄,以便在webBrowser控件中設置cookie。我嘗試過使用Xml.Load()
,但根據我的情況,這並不允許您使用CookieContainer,我也嘗試使用CookieContainer使用HttpWebRequest,但我無法將cookie從webBrowser設置到CookieContainer中。
如果任何人有辦法從Web瀏覽器控件加載XML本身,或者從CookieContainer中的Web瀏覽器控件使用cookie的解決方案,我將不勝感激。
感謝您的建議,但我以前嘗試過。雖然我可能做錯了,你知道Uri是否必須採用某種格式嗎?以前,我使用的是我發送Web請求的URL。 – Dan 2012-08-05 19:48:15
或者你可以使用一個叫做InternetGetCookie的API,你可以從這個API中獲得。 – 2012-08-06 04:28:51