0

タイプで要素を選択しようとしています

//input[(@type = 'checkbox' or @type = 'radio') and @name = 'BigBobMcNob']

しかし、私のタイプは大文字であるため、一致しません

<input type='Checkbox' name='BigBobMcNob' />

どうすれば修正できますか?大文字と小文字を区別する必要があるクラスを選択すると、壊れますか?

4

1 に答える 1

0

ノード コレクションを反復処理し、次のように条件に対して各ノードをチェックすることができます。

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属性には、特別な比較子は必要ありません。

于 2012-07-27T11:49:19.250 に答える