Правильно.
http://www.xslt.com/resources_tutorials.htm
http://ibiblio.org/xml/books/bible/
А W3C всё так-же рулит. Я по спекам разбирался. нормально там всё написано.
РегЭкспы... Надо тебе заменить цены всех товаров, начинающихся на буквы латиницы, на баксы. РегЭкспами - будешь искать переменную $price, смотреть, есть-ли рядом с ней впереди (или в который вложена, что гораздо сложнее) топик товара с нужным шаблоном имени. Xpath это и делает, только он уже написан. А-ля
priceToChange= goods[contains(substring(name(),0,1),varWithEngLetters)]/@price
для XML вида
<prices>
<soda-cola price="200"/>
<пепис-коля price="20"/>
</prices>
выберет 200.
Синтаксис не совсем такой (переменные не так присваиваются), но принцип должно прояснять.
Т.е. - на регЭкспах можно собрать и Xpath, и XSLT - весьма полезные вещи. Просто незачем.
Ещё раз - да, в базах не хуже. Да, XML делает это с plain-text-XML-файлами. XML - более переносим, базы - быстрее. Пока сосуществуют. Возможно, так и будут.