我可以在MSXML2.IXMLDOMAttribute节点之间添加换行符或其他格式吗?
我正在尝试从Excel VBA DOMDocument将数据导出到XML时添加空格。
我可以在普通节点和任何types的元素之间成功执行这些操作,但是我希望在元素的两个属性之间添加一个换行符和一些用于缩进的空白区域。
例如:得到这个…
<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
有什么想法吗? 我怀疑是不支持的