Итак, я динамически генерирую имена своих листов, используя следующий код, читая файл XML:
Set GenreNodes = oXMLFile.SelectNodes("/catalog/query/genre/text()")
.
.
Private Sub CreateSheet(sheetName)
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(after:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = sheetName
End Sub
Прекрасно работает при использовании XML без повторения тегов подобного жанра, таких как:
<?xml version="1.0"?>
<catalog>
<query id="bk101">
<question>Do we have cloud security</question>
<answer>Yes</answer>
<genre>Cloud</genre>
</query>
<query id="bk102">
<question>Do we have locks on the door</question>
<answer>No</answer>
<comment>We have fingerprint access.</comment>
<genre>Physical Security</genre>
</query>
</catalog>
Проблема в том, что в этом примере повторы в жанре (SDLC), например:
<?xml version="1.0"?>
<catalog>
<query id="bk101">
<question>Do we have cloud security</question>
<answer>Yes</answer>
<genre>Cloud</genre>
</query>
<query id="bk103">
<question>What SDLC Priciple is follwed?</question>
<answer>None</answer>
<comment>We have code ninjas.</comment>
<genre>SDLC</genre>
</query>
<query id="bk104">
<question>Do you have OSWP status?</question>
<answer>None</answer>
<comment>We plan to do next year.</comment>
<genre>SDLC</genre>
</query>
</catalog>
Excel выдаёт мне ошибку Name already exists
. Как извлечь уникальные имена узлов, у которых нет этой ошибки?
Спасибо.