Ich versuche, alle Sprachen von Google Translate zu bekommen. Wenn ich Developer Tools öffnen und eine der Sprache klicken, wenn alle Sprachen aufgetaucht sind (wenn Pfeil geklickt hat), gibt es //*[@id=':7']/div/text()
für Arabisch, aber es gibt null zurück, wenn ich versuche, Knoten zu erhalten:xPath ist falsch vom Browser angegeben oder HTMLAgilityPack kann xPath nicht verwenden?
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
Ausgänge all (Ich habe versucht, for loop zu verwenden, um Sprachen zu durchlaufen, aber es funktioniert nicht einmal für einzelnes!)
Ich glaube nicht, dass es legal ist, eine ID zu haben, die mit ":" beginnt, so kann ich nicht sehen, wie das funktionieren würde. Haben Sie die URL/HTML, die Sie versuchen zu kratzen? – Stuart
@Stuart Wie gesagt, sein Google Übersetzer, und wenn Sie alle Sprachen aufklappen, und klicken Sie mit der rechten Maustaste arabisch, dann mit der rechten Maustaste -> kopieren -> xPath, gibt es das und es hat einen Punkt. –