簡體   English   中英

Xdocument.load()不會刷新xml文件更新

[英]Xdocument.load( ) does not refreshes with xml file update

我正在嘗試構建一個小型桌面記分牌,可以獲得並顯示C#中的實時匹配分數。 現在,當我在按鈕點擊時調用Xdocument.load(url)方法時,它僅首次加載最新分數,然后保持顯示相同的分數,即使Xdocument.load()定義為在按鈕單擊時運行(以及何時運行)表單加載,但我不認為這會產生影響)。 現在我在google和stackoverflow上找到的東西就像是看文件何時更新以及相關內容。 但所有這些都是針對本地xml文件的。 我該如何解決我的問題?

     public Form1()
    {
        InitializeComponent();
       // WebRequest.DefaultCachePolicy = new RequestCachePolicy(RequestCacheLevel.Revalidate);   
        feed = XDocument.Load(url);


    }

    private void button1_Click(object sender, EventArgs e)
    {
        feed = XDocument.Load(url + "?_=" + Guid.NewGuid().ToString());
         feed=XDocument.Load(url);
       // var nofmlive = feed.Root.Element("match").Attribute("srs");
        var output = GetItems();
        foreach (var v in output) {
       //rest of the code,,just to get and show data of all matches which are currently live

也許XDocument正在緩存數據。 嘗試通過附加Guid查詢字符串參數參數來破壞緩存:

var doc = XDocument.Load(url + "?_=" + Guid.NewGuid().ToString());

調整? 使用&如果您已在網址中包含查詢字符串參數。

您也可以嘗試更改緩存策略,但這種方法的缺點是它對所有HTTP請求都是全局的:

WebRequest.DefaultCachePolicy = new RequestCachePolicy(RequestCacheLevel.Revalidate);
var doc = XDocument.Load(url);

或者,您可以嘗試使用WebClient加載XML,然后將其提供給XDocument:

using (var client = new WebClient())
{
    string xml = client.DownloadString("http://synd.cricbuzz.com/j2me/1.0/livematches.xml?_=" + Guid.NewGuid().ToString());
    var doc = XDocument.Parse(xml);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM