2016-07-11 6 views
-1

は、私はこのようなクラスatrributeとスパンノードを持つ:クラス名に文字列を含むノードをC#でXPathで選択するには?

<span class=" cite fw-xl fz-ms lh-17">www.azlyrics.com</span> 
<span class=" fz-ms fw-m fc-12th wr-bw lh-17">www.imdb.com</span> 

私はthoesクラスのプロパティとTHES要素のすべてにアクセスしたいです。私はこのコードを書くが、それはnullを返します。

node.SelectSingleNode(".//span[contains(@class,'lh-17')]").InnerText; 

は、どのように私は、これらの要素の両方を取得する必要がありますか?

+0

http://www.ecanarys.com/blog-entry/html-parser –

答えて

1

これは

 string XmlContent = "<span class=\" cite fw-xl fz-ms lh-17\">www.azlyrics.com</span><span class=\" fz-ms fw-m fc-12th wr-bw lh-17\">www.imdb.com</span>"; 

     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("<root>" + XmlContent + "</root>"); 
     XmlNode newNode = doc.DocumentElement; 
     XmlNodeList ab = newNode.SelectNodes("//span[contains(@class, 'lh-17')]"); 

     foreach (XmlNode k in ab) 
     { 
      Console.WriteLine(k.InnerText); 
     } 
+0

TNXを動作するはずです。しかし、私はこれらの2つのスパンタグを持っていません。それはexample.Htmlページを持っていて、ロードします。 InnerText; '' lh-17 'を含む10個のspanタグを持っているときに '' NULL''を返します( '' lh-17' ') ''。 – mary

+0

このソリューションに複数のスパンがあるかどうかは関係ありません。それらをXmlContent文字列変数にロードするだけで、SelectSingleNodeではなくSelectNodesを使用する必要があることに注意してください – Daniel

関連する問題