You can't. You have to trade from someone from Pokemon Diamond to get it. If you can trade from Diamond...
Chat with our AI personalities
The Safari Zone.
you cant catch roselia in emerald, but I'm pretty sure you can catch it in Sapphire, so just trade it over
you have to trade it from diamond to soul silver and you can't actually catch Roselia wild in Pokemon soul silver.
You can catch Lombre in Pokemon HeartGold in the Safari Zone at a waterside area once you receive the National Pokedex.
Find and then catch