Multiline pattern search using sed or awk

Hi friends,
Could you please help me to resolve the below issue.

Input file :-

<Node>
     <username>abc</username>
<password>ABC</password>
<Node>
<Node>
    <username>xyz</username>
       <password>XYZ</password>
<Node>
<Node>
              <username>mnp</username>
      <password>MNP</password>
<Node>
<Node>
               <username>pqj</username>
      <password>PQJ</password>
   <Node>

i have a var1 and var2 as inputs. If var1 matches in username i need to replace the password value with var2. Could you please help me how can i doit. i tried with SED. But failed. because of somany limitations \n is not working properly for me

I have lot of files need to be processed like this . and each file is morethan 1 mb.

awk -vvar1="abc" -vvar2="zzz" '$0~"<username>"var1"</username>"{print;getline;$0="<password>"var2"</password>";print;next}1' infile

Or with sed:

var1=abc
var2=NEW

sed -n "/${var1}/{N;s/${var1}\(<\/username>\n<password>\).*/${var1}\1\\${var2}<\/password>/p}" file

HTH Chris

awk -F'[<>]' '$3==var1{f=1}f&&$2=="password"{sub($3,var2);f=0}1' var1="xyz" var2="newPass" file