タイプで要素を選択しようとしています
//input[(@type = 'checkbox' or @type = 'radio') and @name = 'BigBobMcNob']
しかし、私のタイプは大文字であるため、一致しません
<input type='Checkbox' name='BigBobMcNob' />
どうすれば修正できますか?大文字と小文字を区別する必要があるクラスを選択すると、壊れますか?
タイプで要素を選択しようとしています
//input[(@type = 'checkbox' or @type = 'radio') and @name = 'BigBobMcNob']
しかし、私のタイプは大文字であるため、一致しません
<input type='Checkbox' name='BigBobMcNob' />
どうすれば修正できますか?大文字と小文字を区別する必要があるクラスを選択すると、壊れますか?
ノード コレクションを反復処理し、次のように条件に対して各ノードをチェックすることができます。
var allowedName = "Checkbox";
var allowedTypes = new[] { "checkbox", "radio" };
var nodes = doc.DocumentNode.DescendantNodes()
.Where(n =>
n.Name == "input" &&
allowedTypes.Contains(n.GetAttributeValue("type", null), StringComparer.OrdinalIgnoreCase) &&
n.GetAttributeValue("type", null) == allowedName
).ToList();
type
属性の比較には比較StringComparer.OrdinalIgnoreCase
子が使用されます。name
属性には、特別な比較子は必要ありません。