Multiple rounds of (Committed) Oblivious Transfer
The most straightward approach is to have Bob select two random symmetric keys $k_0$ and $k_1$ and have Bob publish $Encrypt_{k_0}( x_0^i )$ and $Encrypt_{k_1}( x_1^i)$.

Then, Bob does an OT with Alice, allowing Alice to select between $k_0$ or $k_1$.

She learns $k_b$, and then is able to decrypt all the $Encrypt_{k_b}( x_b^i )$ values, resulting in her learning $x_b^1, x_b^2, …, x_b^n$

Because she learns only one of $k_0, k_1$, the value she learns all come from the same half.