XmlDocumentを使用してXHTML文字列を解析および操作し、一部のノードを非HTMLノードに変換しています。
指定されたクラス名を持つすべてのノードのリストを取得するための最良の方法は何ですか?XPathで実行できますか?
XmlDocumentを使用してXHTML文字列を解析および操作し、一部のノードを非HTMLノードに変換しています。
指定されたクラス名を持つすべてのノードのリストを取得するための最良の方法は何ですか?XPathで実行できますか?
与えられたクラスで?1つのクラスだけの場合は、.SelectNodes( "// * [@ class ='foo']")のようなことができるはずです。xhtmlでない場合は、HTMLAgilityPackを検討する価値があります。
クライアントでは、jQueryが適切なオプションであり、複合クラス名をサポートします。
個々の要素に複数のクラス名があり、サーバーでそれを処理する必要がある場合は、最初に候補クラス( "// * [@ class!=''])を見つけてから、それらをループする必要があると思います。を実行Split()
し、結果でクラス名を確認します。つまり、手動で分解します。
LINQ用語では、次のようになります。
var qry = from XmlElement el in d.SelectNodes("//*[@class!='']")
let classes = el.GetAttribute("class").Split(new[] {' '},
StringSplitOptions.RemoveEmptyEntries)
where classes.Contains("foo")
select el;
はい、XPathを使用すると簡単です。
//*[@class='foo']