0
由於性能,我正在將C#腳本解析爲PHP腳本。使用來自字符串標記的HTML循環
這是我遇到麻煩了PHP源:我是有
$dom = new DOMDocument;
$dom->loadHTML($message);
foreach ($dom->getElementsByTagName('a') as $node) {
if ($node->hasAttribute('href')) {
$link = $node->getAttribute('href');
if ((strpos($link, 'http://') === 0) || (strpos($link, 'https://') === 0)) {
$add_key = ((strpos($link, '{key}') !== false) || (strpos($link, '%7Bkey%7D') !== false));
$node->setAttribute('href', $url . 'index.php?route=ne/track/click&link=' . urlencode(base64_encode($link)) . '&uid={uid}&language=' . $data['language_code'] . ($add_key ? '&key={key}' : ''));
}
}
}
的問題是getElementByTagName
一部分。
正如說here,我應該使用htmlagilitypack。到目前爲止我的代碼是這樣的:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(leMessage);
leMessage
是一個包含HTML的字符串。到現在爲止還挺好。唯一的問題是HtmlAgillityPack中沒有getElementsByTag
函數。而在正常的HtmlDocument(沒有包),我不能使用一個字符串作爲HTML頁面的權利?
那麼有誰知道我應該怎麼做才能做到這一點?我現在唯一能想到的是在windows窗體中創建一個webbrowser,並將文檔內容設置爲leMessage
,然後從那裏解析它。但是,個人意見,我不喜歡這種解決方案......但如果沒有另一種方式......
哇,我沒有看到。我很抱歉。不過謝謝你花時間告訴我:D – Mathlight