HTMLアジャイルパックでHTMLフォームを解析しようとしています。 <p>Some Text</p>
しかし、私はこれを持っていると仮定します: <p>Some Text in p Tag<span>Some text in span tag.</span> Again some text in p tag</p>
私はHtmlNode nodeItem in htmlDoc.DocumentNode.Descendants(controlName).ToArray()
を使用して、コントロールのすべての値を取得しています(この場合はpとspan)。しかし、これはスパンにあるテキストを取得するだけです。
私はどのようにしてtage( "p"と "span")の両方の値を得ることができますか?
更新:リソースファイルとキーがコードによって生成される多言語アプリケーションを開発しようとしています。上記の例では、3つのキーを作成する必要があります。1 - 「pタグのテキスト」、2 - 「スパンタグのテキスト」 3 - "pタグのテキストもまた戻ってくる"どのようにこれらのキーを作成できますか。現在のシナリオでは、pタグではなく、spanタグのキーを作成しています。
前もって感謝します
実際問題はあまり明確ではありません。 <p>
と<span>
価値を得ようとした方法を示すより関連性の高いコードを投稿してください。
これは、 <p>
と<span>
両方でテキストを取得するのにうまく<span>
:
var html = @"<p>Some Text in p Tag<span>Some text in span tag.</span> Again some text in p tag</p>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
foreach (HtmlNode nodeItem in htmlDoc.DocumentNode.Descendants("p").ToArray())
{
Console.WriteLine(nodeItem.InnerText);
}
foreach (HtmlNode nodeItem in htmlDoc.DocumentNode.Descendants("span").ToArray())
{
Console.WriteLine(nodeItem.InnerText);
}
この単一のforeach
ループによって生成される出力と同じです。
foreach (HtmlNode nodeItem in
htmlDoc.DocumentNode
.SelectNodes("//*[name() = 'p' or name() = 'span']"))
{
Console.WriteLine(nodeItem.InnerText);
}
または、実際にタグ名を気にしない場合は、次のようにすべての要素を取得できます。
foreach (HtmlNode nodeItem in
htmlDoc.DocumentNode
.SelectNodes("//*"))
{
Console.WriteLine(nodeItem.InnerText);
}
あなたのケースに役立つ上記のサンプルが1つもない場合は、問題を解決して、解決しようとしている実際の問題についてさらに明確にしてください。