#xml #excel #vba
#xml #excel #vba
Вопрос:
У меня настроены мои данные следующим образом:
|------------------------------------|------------------------------------|
| Old URL | New URL |
|------------------------------------|------------------------------------|
| http://example.com/page-a | http://newsite.com/page-a |
|------------------------------------|------------------------------------|
| http://example.com/page-b | http://newsite.com/page-a |
|------------------------------------|------------------------------------|
| http://example.com/page-c | http://newsite.com/page-b |
|------------------------------------|------------------------------------|
| http://example.com/page-d | http://newsite.com/page-c |
|------------------------------------|------------------------------------|
| http://example.com/page-e | http://newsite.com/page-c |
|------------------------------------|------------------------------------|
| http://example.com/page-f | http://newsite.com/page-c |
|------------------------------------|------------------------------------|
| http://example.com/page-g | http://newsite.com/page-c |
|------------------------------------|------------------------------------|
| http://example.com/page-h | http://newsite.com/page-d |
|------------------------------------|------------------------------------|
| http://example.com/page-i | http://newsite.com/page-d |
|------------------------------------|------------------------------------|
Мне нужно перевести эти данные в формат XML, как показано на рисунке:
<urls>
<url>
<old>http://example.com/page-a</old>
<old>http://example.com/page-b</old>
<new>http://newsite.com/page-a</new>
</url>
<url>
<old>http://example.com/page-c</old>
<new>http://newsite.com/page-b</new>
</url>
<url>
<old>http://example.com/page-d</old>
<old>http://example.com/page-e</old>
<old>http://example.com/page-f</old>
<old>http://example.com/page-g</old>
<new>http://newsite.com/page-c</new>
</url>
<url>
<old>http://example.com/page-h</old>
<old>http://example.com/page-i</old>
<new>http://newsite.com/page-d</new>
</url>
</urls>
Каждый <url></url>
из них был бы строкой, по сути, новой строкой. Если бы у меня мог быть <url>
переход только для каждого отдельного старого URL-адреса на новый URL-адрес, тогда это не было бы проблемой. Тем не менее, у меня разные номера <old></old>
для каждого <new></new>
. В моей голове единственный способ, который я мог придумать, чтобы сделать это, — это иметь несколько старых столбцов и переносить дату из строк в столбцы, но, похоже, на это уйдет ЦЕЛАЯ ВЕЧНОСТЬ. У меня есть десятки тысяч дел, которые нужно сделать. Кто-нибудь еще знает о лучшем способе сделать это?
Комментарии:
1. Я думаю, вам нужен только один логический цикл. Создайте
Scripting.Dictionary
, используя новую строку URL в качестве ключа, тогда элемент для этого ключа представляет собой разделенный запятыми список старых URL-адресов. Чтобы затем создать свой XML, создайте<url></url>
для каждого ключа и (используяSplit
) разделитеDictionary.Item
его на отдельные старые URL-адреса, создавая для них записи XML.2. Ваш пример не совсем понятен. Как совпадают старый и новый URL-адреса? Не зная закономерности, мы не можем помочь создать логическую процедуру.