Ну, быстрый и грязный способ - заменить select="pubDate"
на выражение вроде этого:
select="substring(pubDate,1,16)"
Это зависит от того, что месяц состоит из четырех букв, и дает вам только ваш «запасной» результат «Пт, 9 сентября 2011».
Если необходимо, вы можете быть немного умнее и убрать требование месяца, состоящего из четырех букв (что маловероятно для мая), используя это выражение:
select="substring(pubDate,1,string-length(substring-before(pubDate,':'))-3)"
Вместо фиксированной длины в 16 он основывается на том, где находится первое :
(во времени), и вычитает 3 из этого.
Если вы ДЕЙСТВИТЕЛЬНО хотите, есть однострочное выражение, которое может дать вам то, что вы хотите, но оно немного запутанное:
select="concat(normalize-space(substring('Monday Tuesday WednesdayThursday Friday Saturday Sunday ',string-length(substring-before('MonTueWedThuFriSatSun',substring(pubDate,1,3))) * 3 + 1,9)),substring(pubDate,5,string-length(substring-before(pubDate,':'))-7))"
Здесь используется «поиск», чтобы найти, где день недели существует в одной строке, и он используется для выбора полного имени из другой, наконец, используя «normalize-space» для обрезки любых лишних пробелов. Затем он просто объединяет его с частью даты.