2010-12-02 16 views
0

XmlDocumentクラスを使用してロードした非常に単純なxml文字列があります。今私はXPathクエリを介してそれを読み取ろうとしていますが、このエラーが発生します。XPathでXmlを解析するとエラーが発生する

"式はノードセットに評価する必要があります。

ここ

私のXMLである、

<RF_SearchTermBanners> 
    <ImageName>3pc-leather-set.jpg</ImageName> 
</RF_SearchTermBanners> 

はここ

protected void BindSearchBanner(string ImageUrl) 
{ 
    //Parse Xml string containing Image name 
    System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); 
    xmlDoc.LoadXml(ImageUrl); 

    System.Xml.XmlNode node = (System.Xml.XmlNode)xmlDoc.DocumentElement; 
    System.Xml.XmlElement imageElem = node.SelectSingleNode("@/RF_SearchTermBanners/ImageName") as System.Xml.XmlElement; 

    string imgUrl = imageElem.InnerText; 

    if (imgUrl != null && imgUrl != string.Empty) 
    { 
     SearchBanner.ImageUrl = "~/Themes/Default/Images" + imgUrl; 
     SearchBanner.Visible = true; 
    } 
    else 
    { 
     SearchBanner.ImageUrl = string.Empty; 
     SearchBanner.Visible = false; 
    } 
} 

助けてください、私のC#のコードです。

+0

コードLoadXml(ImagePath)が奇妙に見えます。 XMLテキストをLoadXmlメソッドに渡していますか?あなたがURLを渡しているように見えますが、それはそのようには機能しません。 –

答えて

2

@"/RF_SearchTermBanners/ImageName"を意味しましたか? XPathでは、記号@は属性を表します。

+0

Xml解析の初心者です。私はこれをグーグルから手に入れました。だから私は以前のXPathを "RF_SearchTermBanners/ImageName"に変更しましたが、私はまだ同じエラーが発生します。 –

+0

RF_SearchTermBanners要素内のRF_SearchTermBannersという名前の要素が検索されます。 XPathを 'ImageName'または'/RF_SearchTermBanners/ImageName'(先頭に '/'を付けてください)に変更してください。 – jordanbtucker

+0

それが問題を解決しました。私はそれについて幼稚で、それは簡単だった。ありがとう。 –

関連する問題