C#藉助Google翻譯實現翻譯小工具(一)準系統實現

來源:互聯網
上載者:User

標籤:

軟體效果:

實現原理很簡單,就是封裝Google翻譯網站:http://translate.google.cn/,一個WebBrowser“肢解”Google翻譯網站的HtmlElement元素,刪除不要的,留下需要的就是了,沒什麼難度

實現步驟:

一個winform表單+一個WebBrowser控制項

 

設定WebBrowser的URL為Google翻譯網站,刪除不需要的html元素

全部代碼:

public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            this.Shown += Form1_Shown;        }        const string url = "http://translate.google.cn/?hl=zh-cn#zh-CN/en/%E6%9D%A5%E8%87%AA%0Ahttp%3A%2F%2Ftranslate.google.cn%2F";        private void Form1_Load(object sender, EventArgs e)        {            webBrowser1.IsWebBrowserContextMenuEnabled = false;            webBrowser1.ScriptErrorsSuppressed = true;            webBrowser1.Url = new Uri(url);        }        void Form1_Shown(object sender, EventArgs e)        {            while (webBrowser1.Document == null)                Application.DoEvents();            HtmlElement element;            deleteAllElement(webBrowser1.Document.Body, "DIV", "gt-c", out element);            deleteAllElement(element, "DIV", "gt-form-c", out element);            deleteAllElement(element, "FORM", "gt-form", out element);            deleteAllElement(element, "DIV", "gt-text-all", out element);            deleteAllElement(element, "DIV", "gt-main", out element);            deleteAllElement(element, "DIV", "gt-text-c", out element);            deleteElementByID(element, "gt-ft");            //獲得gc-text-top元素            foreach (HtmlElement ele in element.Children)            {                if (ele.Id == "gt-text-top")                {                    element = ele;                    break;                }            }            #region 去掉 上傳,協助            HtmlElement srcElement = null;            foreach (HtmlElement ele in element.Children)            {                if (ele.Id == "gt-src-c")                {                    srcElement = ele;                    break;                }            }            deleteAllElement(srcElement, "", "gt-src-p", out srcElement);            deleteAllElement(srcElement, "DIV", "gt-src-wrap", out srcElement);            #endregion            //去掉有錯誤            #region 去掉 上傳,協助            HtmlElement resElement = null;            foreach (HtmlElement ele in element.Children)            {                if (ele.Id == "gt-res-c")                {                    resElement = ele;                    break;                }            }            deleteAllElement(resElement, "", "gt-res-p", out resElement);            deleteAllElement(resElement, "", "gt-res-data", out resElement);            deleteAllElement(resElement, "DIV", "gt-res-wrap", out resElement);            deleteElementByID(resElement, "gt-res-tools");            #endregion        }        void deleteAllElement(HtmlElement HtmlEle, string TagName, string IgroneID, out HtmlElement element)        {            element = null;            if (HtmlEle == null) return;            List<HtmlElement> lst = new List<HtmlElement>();            foreach(HtmlElement div in HtmlEle.Children)            {                if (!String.IsNullOrEmpty(TagName) && div.TagName != TagName) continue;                if (div.Id != IgroneID)                {                    lst.Add(div);                                    }                else                    element = div;            }            foreach (HtmlElement ele in lst)            {                IHTMLDOMNode node = ele.DomElement as IHTMLDOMNode;//this.webBrowser1.DomElement as mshtml.IHTMLDOMNode;                if (node != null)                {                    node.parentNode.removeChild(node);                }            }        }        void deleteElementByID(HtmlElement HtmlEle, string DeleteID)        {                                    foreach (HtmlElement div in HtmlEle.Children)            {                if (div.Id == DeleteID)                {                    IHTMLDOMNode node = div.DomElement as IHTMLDOMNode;//this.webBrowser1.DomElement as mshtml.IHTMLDOMNode;                    if (node != null)                    {                        node.parentNode.removeChild(node);                    }                    return;                }            }        }    }

:CSDN下載

下一節:

C#藉助Google翻譯實現翻譯小工具(二)添加托盤表徵圖

C#藉助Google翻譯實現翻譯小工具(一)準系統實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.