2014-01-15 3 views
0

Я пытаюсь заменить значение месяца в <month> теге к соответствующему номеру месяца, например: <month>Feb</month> следует заменить <month>02</month>Замена название месяца с соответствующим номером месяца

Я попытался это,

Dim strFile As String = File.ReadAllText(TextBox1.Text & "\" & parentFolder & ".xml") 
    strFile = Regex.Replace(strFile, "<conf-start.*?><day>(.*?)</day><month>Feb</month>", "$&<month>02</month>") 
    File.WriteAllText(TextBox1.Text & "\" & parentFolder & ".xml", strFile) 

Но это дает мне ниже выходные

<conf-start iso-8601-date="0"><day>00</day><month>Feb</month><month>02</month> 

Вместо его добавление метки рядом с названием месяца выход я хотел я s следующим образом:

<conf-start iso-8601-date="0"><day>00</day><month>02</month> 

Название месяца следует заменить соответствующим номером. Заранее спасибо ..

+0

Не используйте регулярное выражение для обработки XML/HTML ... – MarcinJuraszek

+0

Возможно, вы задаете один и тот же вопрос дважды? Пожалуйста, пересмотреть один вопрос и закрыть/удалить другой. – Marijn

ответ

0

Использование XDocument легко понять. Затем просто проанализируйте содержимое узла либо

DateTime dateTime = DateTime.ParseExact («Ноябрь», «MMMM», CultureInfo.CurrentCulture); ДатаTime dateTime = DateTime.ParseExact («Nov», «MMM», CultureInfo.CurrentCulture);

в зависимости от формата месяца. Это даст вам дату, как 11/1/2014 12:00:00 AM. Я был немного удивлен, что год является текущим, а не эпохой, но нам все равно.

Затем dateTime.Month.ToString() для замены содержимого узла.

Тетя DateTime не нравится "." в сокращенные месяцы во втором случае, но вы не используете этот образец. Если он подходит, используйте dateString = dateString.TrimEnd ('.'), Чтобы избавиться от "."

Смежные вопросы