0
我想遍歷XML文件中的所有元素,並通過文本文件將值分配給元素。循環遍歷所有XML元素並根據文本文件的輸入添加XML文件
project_template.xml
:
<project baseDir="" outputDir="">
<rule inherit="" preset="" pattern="" />
</project>
test.txt
:
baseDir="test1" outputDir="test2" inherit="test3" preset="test4" pattern="true"
Project.vbs
:
Option Explicit
Dim arrFileLines(), final(45)
Dim i, objFSO, objFile, l, index, finalString
i = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\1021752\Desktop\project\test.txt", 1)
Do Until objFile.AtEndOfStream
ReDim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
Const NODE_ELEMENT = 1
Const CONFUSER_NS = "http://confuser.codeplex.com"
Dim doc, moduleElem, args, arg
Set args = WScript.Arguments
Set doc = CreateObject("Msxml2.DOMDocument")
doc.Async = False
doc.Load "project_template.xml"
If doc.ParseError.ErrorCode Then
WScript.Echo doc.ParseError
WScript.Quit 1
End If
For l = LBound(arrFileLines) To UBound(arrFileLines) Step 1
index = InStr(1, arrFileLines(l), "=")
final(l) = Right(arrFileLines(l), Len(arrFileLines(l)) - index)
Next
doc.DocumentElement.SetAttribute "baseDir", final(0) 'here I am manually assigning the value to the "baseDir"
doc.DocumentElement.SetAttribute "outputDir", final(1)
doc.DocumentElement.SetAttribute "inherit", final(2)
doc.DocumentElement.SetAttribute "preset", final(3)
doc.DocumentElement.SetAttribute "pattern", final(4)
doc.Save "project.xml"
希望的輸出:
<project baseDir="test1" outputDir="test2" >
<rule inherit="test3" preset="test4" pattern="true" />
</project>
我希望代碼遍歷XML文件中的所有元素並返回名稱。
我改變了代碼比特,我刪除If語句'子UpdateAttributes(節點,值) 對於每個ATTR在node.Attributes node.SetAttribute ATTR,值(ATTR) 接着 爲每個子在節點.ChildNodes 更新eAttributes child,值 Next End Sub'當我實現這個方法並運行它時,它拋出了一個類型不匹配錯誤800A000D。你能幫我解決它,因爲我沒有找到任何解決方案 –
你需要使用'attr.Name',而不是'attr'。查看更新的答案。 –