Google 번역에서 모든 언어를 가져 오려고합니다. 개발자 도구를 열고 모든 언어가 팝업 될 때 (화살표를 클릭 할 때) 언어 중 하나를 클릭하면 //*[@id=':7']/div/text()
아랍어를 제공 하지만 노드를 얻으려고하면 null을 반환합니다.
async Task AddLanguages()
{
try
{
// //*[@id=":6"]/div/text()
HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);
for (int i = 6; i <= 9; i++)
{
//*[@id=":6"]/div/text() //*[@id=":6"]/div/div
Debug.WriteLine(i);
var element = document.DocumentNode.SelectSingleNode("//*[@id=':7']/div/text()");
Trace.WriteLine(element == null, "Element is null");
}
}
catch (Exception e)
{
this.ShowMessageAsync("Hata!", "Dilleri yüklerken hata ortaya çıktı.");
}
}
Element is null: True
항상 출력합니다 (for 루프를 사용하여 언어를 반복하려고했지만 단일 언어에서도 작동하지 않습니다!)
귀하의 xpath가 잘못된 것 같습니다. 다음과 같이 시도 할 수 있습니다.
string Url = "https://translate.google.com/";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
var arabic = doc.DocumentNode.Descendants("div").FirstOrDefault(_ => _.ChildNodes.Any(node => node.Name.Equals("#text") && node.InnerText.Equals("Arabic")));
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다