首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用Hotbits并解析xml应答文件并打印出随机数

调用Hotbits并解析xml应答文件并打印出随机数
EN

Stack Overflow用户
提问于 2017-11-01 17:59:38
回答 1查看 131关注 0票数 1
代码语言:javascript
复制
namespace ConsoleApp1
{
    class Program
    {
        static HttpClient client = new HttpClient();
        static void Main(string[] args)
        {
            RunAsync().Wait();
        }
        static async Task<string> GetProductAsync(string path = "https://www.fourmilab.ch/cgi-bin/Hotbits.api?nbytes=8&fmt=xml&npass=1&lpass=8&pwtype=3&apikey=HB18CsHhr5Muzoee1KAu4QY5xUe")
        {
            string product = string.Empty;
            HttpResponseMessage response = await client.GetAsync(path);
            if (response.IsSuccessStatusCode)
            {
                product = await response.Content.ReadAsAsync<string>();
            }
            return product;
        }
        static async Task RunAsync()
        {
            string str = await GetProductAsync();
            XmlDocument xml = new XmlDocument();
            xml.Load(str);
            Console.WriteLine(xml.InnerXml);
            XmlNodeList list = xml.GetElementsByTagName("random-data");
            string[] strs = list[0].InnerXml.Split(' ');
            foreach (object e in strs)
            {
                Console.WriteLine(e);
            }
        }

嗨,这是我在c#中调用hotbits的源代码,我得到的错误是

"CData元素在XML文档的顶层无效。第1行,位置3“

如果有人能帮忙,这是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-11-01 18:22:03

使用Xml尝试如下:

代码语言:javascript
复制
const string URL = "https://www.fourmilab.ch/cgi-bin/Hotbits.api?nbytes=8&fmt=xml&npass=1&lpass=8&pwtype=3&apikey=HB18CsHhr5Muzoee1KAu4QY5xUe";
static void Main(string[] args)
{
    XDocument doc = XDocument.Load(URL);

    string randomNumbers = (string)doc.Descendants("random-data").FirstOrDefault();

    int[] numbers = randomNumbers.Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x, System.Globalization.NumberStyles.HexNumber)).ToArray();

    Console.WriteLine(string.Join(",",numbers.Select(x => x.ToString())));
    Console.ReadLine();

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47060991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档