Dies ist mein Code:GetElementsByTagName bekommt nur den ersten Knoten (XMLDocument)
FileInfo[] Files = difo.GetFiles("*.xml");
string[] parts;
string[] FileSearchRes = Directory.GetFiles(@"C:\Users\ahodhv\Perforce\ahodhv_RD0029717_1921\prod\delivery\q_rec\int_test\SOPS", "*.xml", SearchOption.AllDirectories);
int i = 0;
foreach (FileInfo File in Files)
{
parts = File.Name.Split('_');
boxvehicles.Items.Add(parts[0]);
string test = FileSearchRes[i];
doc.Load(FileSearchRes[i]);
List<string> name = new List<string>();
var accountNodes = doc.GetElementsByTagName("FpcBlock");
for (int j = 0; j < accountNodes.Count; j++)
{
var account = accountNodes[j].SelectSingleNode("./FPC");
if (account != null && account.Attributes != null)
{
// Read node attribute
name.Add(account.Attributes["Name"].Value + account.Attributes["Value"].Value);
}
}
i++;
}
Im Versuch, aus einer XML-Datei zu lesen, die wie folgt aussieht:
<FpcBlock Version="01">
<FPC Name="1" Value="A" Updated="false" />
<FPC Name="3" Value="B" Updated="false" />
<FPC Name="5" Value="B" Updated="false" />
<FPC Name="8" Value="B" Updated="false" />
<FPC Name="10" Value="B" Updated="false" />
</FpcBlock>
Das Problem in der Linie liegt :
var accountNodes = doc.GetElementsByTagName("FpcBlock");
accountnodes hat count 1 was falsch ist, da ich mehr Knoten habe. Aus diesem Grund wird nur der erste Knoten zum Namen hinzugefügt. Was mache ich falsch?
EDIT: Sorry, wenn ich verwirrt war. Ich möchte alle darunter liegenden Zeilen in einer Liste speichern. Was ich wünsche ist, dass die Liste sollte etwa so aussehen:
und so weiter. Also speichere ich den Namen und den Wert. Aber im Moment bekomme ich nur die erste Reihe, die 1A ist.
EDIT nr 2: Ich missverstanden die GetElementsByTagName()
Methode. Durch den Wechsel zu GetElementsByTagName("FPC")
sollte es das Problem geben.
Ihr XML hat * nur ein * 'FpcBlock' Element. Es ist nicht klar, warum du denkst, du solltest mehr als einen bekommen, wenn es nur einen gibt. Ist Ihr Beispiel unvollständig? –
Scheint, als wäre ich ein bisschen verwirrend sorry. Ich hätte gerne alles unter geschrieben. Also würde ich gerne alle 5 Zeilen darunter –
Dann warum nicht 'GetElementsByTagName (" FPC ")', da sie diejenigen sind, die Sie eigentlich wollen? –