<?xml version="1.0" encoding="Shift-JIS"?>
<sqs><ssssss><name>対象1
</name><name>対象2
</name><name>対象3
</name></ssssss><name>海陆空1</name><name>海陆空2
</name></sqs>正确的格式应为如下:
<?xml version="1.0" encoding="Shift-JIS"?>
<sqs>
<ssssss>
<name>対象1</name>
<name>対象2</name>
<name>対象3</name>
</ssssss>
<name>海陆空1</name>
<name>海陆空2</name>
</sqs>怎样改呢?
<sqs><ssssss><name>対象1
</name><name>対象2
</name><name>対象3
</name></ssssss><name>海陆空1</name><name>海陆空2
</name></sqs>正确的格式应为如下:
<?xml version="1.0" encoding="Shift-JIS"?>
<sqs>
<ssssss>
<name>対象1</name>
<name>対象2</name>
<name>対象3</name>
</ssssss>
<name>海陆空1</name>
<name>海陆空2</name>
</sqs>怎样改呢?
Dim tempDoc As MSXML2.DOMDocument
Dim tempNode As IXMLDOMNode
Dim FatherNode As IXMLDOMNode
Dim Root As IXMLDOMElement
Dim emp As IXMLDOMElement
Dim DiagramObj As DiagramObjects
Dim ShapeObj(60)
Dim LineObj(60)
Dim i As Long
'xml対象初期化
Set tempDoc = New DOMDocument Set Root = tempDoc.createElement("sqs")
Set tempDoc.documentElement = Root
DocPath = "c:\sample.xml"
Set DiagramObj = 図表1.DiagramObjects
' MsgBox DiagramObjects.Count
'MsgBox ixObjectShape
i = 1
Dim obj As DiagramObject
For Each obj In 図表1.DiagramObjects
Select Case obj.Type
Case ixObjectShape 'shapeの場合
ShapeObj(i) = obj.Shape.Text & Chr(13)
Case ixObjectTextGraphic '線の場合
LineObj(i) = obj.TextGraphicObject.Text & Chr(13)
Case Else
End Select
i = i + 1
Next obj
Set FatherNode = tempDoc.cr.createNode(MSXML2.NODE_ELEMENT, "ssssss", "")
For j = 1 To 60
If ShapeObj(j) <> "" Then
Set tempNode = tempDoc.createNode(MSXML2.NODE_ELEMENT, "name", "")
tempNode.Text = ShapeObj(j)
FatherNode.appendChild tempNode
End If
Next
Root.appendChild FatherNode
For j = 1 To 60
If LineObj(j) <> "" Then
Set tempNode = tempDoc.createNode(MSXML2.NODE_ELEMENT, "name", "")
tempNode.Text = LineObj(j)
Root.appendChild tempNode
End If
Next
Dim pi As IXMLDOMProcessingInstruction
Set pi = tempDoc.createProcessingInstruction("xml", "version='1.0' encoding='Shift-JIS'")
Call tempDoc.insertBefore(pi, tempDoc.childNodes(0))
'保存文件
tempDoc.Save (DocPath)
MsgBox "XMLファイル生成した。"