In your example, VFile is a local variable in the foreach loop, so all that is happening is that the variable is being overwritten with the "current" value in each iteration.
Its sounds like a for loop is what you're after. As an example:
$arr = @(1, 2, 3, 4, 5)
for ([Int32]$i = 0; $i -lt $arr.Length; $i++)
{
$arr[$i] = 10
}
$arr
...so in your case, that would be something like:
$lines = Get-Content -Path "Results.xml"
for ([Int32]$i = 0; $i -lt $lines.Length; $i++)
{
$lines[$i] = "URL"
}
$lines