当我将数据从 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
有什么想法吗?我的怀疑是不支持