0

私の WPF アプリケーションでは、Atom xaml フィードを読み取るためのコードを記述したいと考えています。私のコードがこのリンクを使用し、このリンクで定義されたこのxamlファイルからタイトルと説明を取得したいWeb linksようなことがあります。www.myweblink/NewXaml.xaml

ATOM XAML.FILE

    <?xml version='1.0' encoding='UTF-8' ?>
    <rss version='2.0' xmlns:atom='http://www.w7.org7/Atom'>
    <channelWay>
    <title>Text1 -  Network</title>
    <atom:link href='http://link1/myxaml.xml' rel='self' type='typeOne/rss+xml' />
    <link>http://website.com</link>
    <description> This is New Description </description>
    <lastBuildDate>Fri, 2 Oct 2011 00:00:00 +0500</lastBuildDate>
    <language>en-us</language>
    <item>
    <title>
         My First Title
    </title>
    <link>http://website.com/PageOne.aspx?ID=123790</link>
    <guid>http://website.com/PageTwo.aspx?ID=123790</guid>
    <description>
         My First Description
    </description>
    <pubDate>Fri, 2 Oct 2011 13:10:00 +0500</pubDate>
    </item>
    <item>
    <title>
        My Second Title
     </title>
    <link>
 <link>http://website.com/PageOne1.aspx?ID=123790</link>
    <guid>http://website.com/PageTwo1.aspx?ID=123790</guid>
    <description>
         My Second Description
    </description>
    <pubDate>Fri, 2 Oct 2011 13:10:00 +0500</pubDate>
    </item> . . . . . .

コード Xaml ファイルを読み取るには:

 public Window1()
        {
            InitializeComponent();

            FlowDocument content = null;

            OpenFileDialog openFile = new OpenFileDialog();
            openFile.Filter = "FlowDocument Files (*.xaml)|*.xaml|All Files (*.*)|*.*";

            if (openFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                FileStream xamlFile = openFile.OpenFile() as FileStream;
                if (xamlFile == null) return;
                else
                {   
                    try 
                    { 
                        content = XamlReader.Load(xamlFile) as FlowDocument; 
                        if (content == null) 
                            throw(new XamlParseException("The specified file could not be loaded as a FlowDocument."));
                    }
                    catch (XamlParseException e)
                    {
                        String error = "There was a problem parsing the specified file:\n\n";
                        error += openFile.FileName;
                        error += "\n\nException details:\n\n";
                        error += e.Message;
                        System.Windows.MessageBox.Show(error);
                        return;
                    }
                    catch (Exception e) 
                    {
                        String error = "There was a problem loading the specified file:\n\n";
                        error += openFile.FileName;
                        error += "\n\nException details:\n\n";
                        error += e.Message;
                        System.Windows.MessageBox.Show(error);
                        return;
                    }

                    FlowDocRdr.Document = content;
                }
        }

エラー: rssXaml の filde が無効であるというエラーが生成されます。

Q1: この xaml ファイルからタイトルと説明を取得するにはどうすればよいですか?

Q2: このファイルを PC に保存し、このコードへのパスを指定してハードコード化する代わりに、プログラムがこのリンクに自動的に移動するようにします。

誰でも私を助けてください。

4

2 に答える 2

1

XML パーサーを使用する必要があります。名前空間のようXDocumentSystem.Xml.Linq

FileStream xamlFile = openFile.OpenFile() as FileStream;
XDocument xdoc = XDocument.Load(xamlFile);

//get title
string title = xdoc.Element("Title").Value;

//get description of first link
string firstLinkDesc = xdoc.Element("Link").Element("Description").Value;

注 - XAML と XML の関係について混乱していると思いますが、これらは異なる形式です。XAML は XML に基づいています。Atom は、同じく XML に基づくフィードを配信するためのフォーマットです。

于 2013-10-25T11:49:55.950 に答える