You have to use a loop and update one value at a time.
while @XML.exist('/LineItems/LineItem[@vendorId = "1"]') = 1
set @XML.modify('replace value of (/LineItems/LineItem[@vendorId = "1"]/@vendorId)[1] with "2"' )
A version that updates a XML column in a table would look like this.
while exists(
select * from T
where T.XMLColumn.exist('/LineItems/LineItem[@vendorId = "1"]') = 1
--and [some other condition]
)
begin
update T
set XMLColumn.modify('replace value of (/LineItems/LineItem[@vendorId = "1"]/@vendorId)[1] with "2"')
where T.XMLColumn.exist('/LineItems/LineItem[@vendorId = "1"]') = 1
--and [some other condition]
end