XPath para elementos com atributo diferente ou não existe

Eu tenho o seguinte formato XML:

<test>
 <table>
   <rows>
     <row ID = "1" Name ="A"/>
     <row ID = "2" SubID = "1" Name ="B"/>
     <row ID = "3" Name ="C"/>
     <row ID = "4" SubID = "1" Name ="D"/>
     <row ID = "5" Name ="E"/>
     <row ID = "4" SubID = "2" Name ="E"/>
   </rows>
   .
   .
 </table>
</test>

Gostaria de assumir todas as linhas, exceto as que têmSubID = 1.

A parte mais difícil disso é que nem todas as linhas têm atributo chamadoSubIDe que nem todas as linhas com o atributoSubID, tenha o mesmo valor.

A saída ideal deve ser:

<row ID = "1" Name ="A"/>
<row ID = "3" Name ="C"/>
<row ID = "5" Name ="E"/>
<row ID = "4" SubID = "2" Name ="E"/>

Eu tentei usar um XPath com negação de valor, mas isso não funcionará:

/test/table/row/not(@SubID=1)

Qualquer ajuda?

questionAnswers(1)

yourAnswerToTheQuestion