Я попал туда, где я могу получить значения элементов, которые я хочу, и добавить их в текстовый файл.Проблема в том, что я добавляю их последовательно.Отрывок / пример из моего xml-файла:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Arcade>
<Game>
<Title>t1</Title>
<Publisher>p1</Publisher>
<Source>s1</Source>
<Version>v1</Version>
<Genre>g1</Genre>
</Game>
<Game>
<Title>t2</Title>
<Publisher>p2</Publisher>
<Source>s2</Source>
<Version>v2</Version>
<Genre>g2</Genre>
</Game>
<Game>
<Title>t3</Title>
<Publisher>p3</Publisher>
<Source>s3</Source>
<Version>v3</Version>
<Genre>g3</Genre>
</Game>
</Arcade>
Вывод, который я хотел бы увидеть:
t1 s1 g1
t2 s2 g2
t3 s3 g3
Мой базовый сценарий:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
xmlPath := "D:\temp\Arcade.xml"
xmlDoc := ComObjCreate("MSXML2.DOMDocument.6.0")
xmlDoc.async := false
xmlDoc.load(xmlPath)
Loop Files, %xmlPath%
{
for item in xmlDoc.getElementsByTagName("Title") {
Tstring := item.text
FileAppend, %Tstring% , D:\temp\testoutput.txt
}
for item in xmlDoc.getElementsByTagName("Source") {
Sstring := item.text
FileAppend, %Sstring% , D:\temp\testoutput.txt
}
for item in xmlDoc.getElementsByTagName("Genre") {
Gstring := item.text
FileAppend, %Gstring%`n, D:\temp\testoutput.txt
}
ExitApp
}
В результате:
t1 t2 t3 s1 s2 s3
g1
g2
g3
Я попытался переместить закрывающие «фигурные скобки», а также FileAppend, аналогично:
Loop Files, %xmlPath%
{
for item in xmlDoc.getElementsByTagName("Title") {
Tstring := item.text
for item in xmlDoc.getElementsByTagName("Source") {
Sstring := item.text
for item in xmlDoc.getElementsByTagName("Genre") {
Gstring := item.text
FileAppend, %Tstring%|%Sstring%|%Gstring%`n, D:\temp\testoutput.txt
}
}
}
ExitApp
}
.., что дает мне:
t1 s1 g1
t1 s1 g2
t1 s1 g3
t1 s2 g1
t1 s2 g2
t1 s2 g3
t1 s3 g1
t1 s3 g2
t1 s3 g3
t2 s1 g1
t2 s1 g2
t2 s1 g3
...
И несколько других итераций.Я знаю (или, по крайней мере, чувствую), что я на правильном пути, и если бы это была игра MasterMind, я думаю, что я мог бы иметь ее сейчас.:) Увы, это не так.
Буду признателен за любую помощь и руководство.