Dom Android如何使用Dcsoup Nuget插件获取Google Play Store应用程序版本号?
我正在尝试获取我的商店应用程序的最新版本号,以便在用户使用旧版本时通知他们更新 到目前为止,这是我的代码,但它显然只是检索包含文本“versionnumber”的div。我如何根据所附的DOM树屏幕截图获得实际的版本号(在本例中为1.1)Dom Android如何使用Dcsoup Nuget插件获取Google Play Store应用程序版本号?,dom,xamarin.android,jsoup,Dom,Xamarin.android,Jsoup,我正在尝试获取我的商店应用程序的最新版本号,以便在用户使用旧版本时通知他们更新 到目前为止,这是我的代码,但它显然只是检索包含文本“versionnumber”的div。我如何根据所附的DOM树屏幕截图获得实际的版本号(在本例中为1.1) public static string GetAndroidStoreAppVersion() { string androidStoreAppVersion = null; try
public static string GetAndroidStoreAppVersion()
{
string androidStoreAppVersion = null;
try
{
using (var client = new HttpClient())
{
var doc = client.GetAsync("https://play.google.com/store/apps/details?id=" + AppInfo.PackageName + "&hl=en_CA").Result.Parse();
var versionElement = doc.Select("div:containsOwn(Current Version)");
androidStoreAppVersion = versionElement.Text;
}
}
catch (Exception ex)
{
// do something
Console.WriteLine(ex.Message);
}
return androidStoreAppVersion;
}
根据,containsOwm选择器选择直接包含指定文本的元素。
因此,您的代码
var versionElement = doc.Select("div:containsOwn(Current Version)");
肯定会返回“当前版本”。您希望获得的真正元素是“当前版本”元素的同级的子元素的子元素。因此,您必须使用选择器获取该元素。
因此,您可以通过以下方式获取版本号:
var versionElement = doc.Select("div:containsOwn(Current Version)");
Element headElement = versionElement[0];
Elements siblingsOfHead = headElement.SiblingElements;
Element contentElement = siblingsOfHead.First;
Elements childrenOfContentElement = contentElement.Children;
Element childOfContentElement = childrenOfContentElement.First;
Elements childrenOfChildren = childOfContentElement.Children;
Element childOfChild = childrenOfChildren.First;
androidStoreAppVersion = childOfChild.Text;
这是正确的,但如何在代码中编写?这就是我被困的地方。我会继续努力的。非常感谢你!元素是数组或列表。在XF命名空间中看不到数据类型?