→ MOONRAKER:這就對了,裡面的確有修改XML的內容,所以最後要save 03/20 03:03
整個與XML有關的腹程式碼是這樣,可能擷取 M大 不好看
但是還是非常謝謝你的解釋
Sub SetNewParam()
Dim i%, j%, k%
Dim NumSoil%, TreeName$
Dim tmpS$, tmpChr$, tmpA As Variant
Dim doc As New MSXML.DOMDocument
Dim XMLNode As IXMLDOMNode
Dim sK$, aK As Variant
Open App.Path & "\File002.txt" For Input As #1
Line Input #1, tmpS
NumSoil = tmpS
Line Input #1, tmpS
NUMND = tmpS
Line Input #1, tmpS
aNode = Split(ParseStr(tmpS), "|")
Line Input #1, tmpS
MJDAY = tmpS
doc.async = False
doc.Load WorkPath & XMLfile
For i = 0 To NumSoil - 1
With doc.documentElement.selectSingleNode("//Materials").childNodes(i).
& selectSingleNode("./Thermal").Attributes
Line Input #1, tmpS
.getNamedItem("WaterContent").Text = Trim(tmpS)
Line Input #1, tmpS
tmpA = Split(ParseStr(tmpS), "|")
.getNamedItem("UnfrozenSpecHeat").Text = tmpA(1)
.getNamedItem("FrozenSpecHeat").Text = tmpA(2)
End With
For j = 1 To 2
Select Case j
Case 1
TreeName = "//UnfrozenWCFns"
Case 2
TreeName = "//KFnTemps"
End Select
With doc.documentElement.selectSingleNode(TreeName).childNodes(i).
& selectSingleNode("./Coords")
For k = 11 To 0 Step -1
Line Input #1, tmpS
tmpA = Split(ParseStr(tmpS), "|")
.childNodes(k).Attributes.getNamedItem("X").Text = tmpA(1)
.childNodes(k).Attributes.getNamedItem("Y").Text = tmpA(2)
Next
End With
Next
Next
Close #1
doc.save WorkPath & XMLfile
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.64.65