Могу ли я добавить перевод строки или другое форматирование между узлами MSXML2.IXMLDOMAttribute?
Я пытаюсь добавить пробел при экспорте данных из Excel VBA DOMDocument в XML.
Я могу успешно сделать это между обычным узлом и элементами любого типа, но я хотел бы добавить перевод строки и некоторое пустое пространство для отступа между двумя атрибутами элемента.
Пример: получить это...
<elements>
<element id="idvalue">
<subelement id="idvalue" item-type="10" store-category="3" purchase-limit="1" min-roster-space="4" ui-headerbg="tex.icon" ui-icon="tex.coolicon">
Чтобы выглядеть так...
<elements>
<element id="idvalue">
<subelement id="idvalue" item-type="10" store-category="3"
purchase-limit="1" min-roster-space="4" ui-headerbg="tex.icon"
ui-icon="tex.coolicon">
Делать это с обычными элементами довольно просто, используя код, подобный следующему:
parentElement.InsertBefore _
parentElement.OwnerDocument.createTextNode(strElementFormat), _
parentElement.ChildNodes.Item(0)
или же
parentElement.appendChild _
parentElement.OwnerDocument.createTextNode(strLastElementFormat)
Я пробовал перебирать атрибуты как узлы, вставлять перед использованием родительского элемента и т. Д.
Кажется, второй текстовый элемент обрабатывается как часть значения атрибута, например:
<item id="2024_MINNOW_CONVERSION" item-type="10" store-category="3" purchase-limit="1
 " min-roster-space="4">
Используя этот фрагмент кода:
Sub formatXMLAttributes(currentElement As MSXML2.IXMLDOMElement, _
toolXMLDoc As MSXML2.DOMDocument60, _
Indent As Integer)
Dim attributeNode As MSXML2.IXMLDOMNode, _
intIndex As Integer, _
strElementFormat As String
intIndex = 0
strElementFormat = vbCrLf & Space$(Indent * 4)
For Each attributeNode In currentElement.Attributes
intIndex = intIndex + 1
If intIndex Mod 4 = 0 And currentElement.Attributes.Length > 4 Then
attributeNode.appendChild _
attributeNode.OwnerDocument.createTextNode(strElementFormat)
End If
Next
End Sub
Какие-нибудь мысли? Я подозреваю, что это не поддерживается