Ich habe Probleme, die Abfrage richtig zu bekommen, wenn Sie versuchen, eine XML-Datei mit XDocument zu analysieren.Wie bekomme ich die richtigen Elemente mit XDocument Abfrage
Was ich will:
Gib mir alle Werte von "Name" Elements of Step mit id = "ID_3" So das Ergebnis eine Liste sein sollte „Name des Teils 1, Name des Teil 2 enthält, Bezeichnung des Teils 3, Name des Teils 4
XML-Input-:..
<MyXML>
<Step id="id_1" type="type1">
<Name>Some Name</Name>
<Location>1</Location>
<Quantity>1</Quantity>
</Step>
<Step id="id_2" type="type1">
<Name>>Some Name</Name>
<Location>2</Location>
<Quantity>1</Quantity>
</Step>
<Step id="id_3" type="type2">
<Instruction>This is some text</Instruction>
<Component>
<Name>Name of part 1</Name> // --> I want this value
<Transition_Start>-0.2,0.01,0.0</Transition_Start>
<Transition_End>0,0.01,0.0</Transition_End>
</Component>
<Component>
<Name>Name of part 2</Name> // --> and this
<Transition_Start>0.2,0.01,0</Transition_Start>
<Transition_End>0,0.01,0</Transition_End>
</Component>
<Component>
<Name>Name of part 3</Name> // --> and this
<Transition_Start>0.05,0.1004,0.0333</Transition_Start>
<Transition_End>-0.0803,0.1004,0.0333</Transition_End>
</Component>
<Component>
<Name>Name of part 4</Name> // --> and this
<Transition_Start>-0.0107,0.0383,-0.2328</Transition_Start>
<Transition_End>-0.0107,0.0383,-0.2328</Transition_End>
</Component>
</Step>
</MyXML>
ich habe versucht, so etwas wie diese (in Unity3D)
IEnumerable<XElement> e_nameOfObjects =
from el in myXMLDoc.Root.Elements ("Step")
where (string)el.Attribute ("id") == "id_" + currentStep
select el.Elements ("Component");
foreach (XElement e in e_nameOfObjects) {
Debug.Log (e.Element("Name"));
}
Die Fehlermeldung:
Kann nicht implizit Typ System.Collections.Generic.IEnumerable konvertieren> ' zu System.Collections.Generic.IEnumerable'. Eine explizite Umwandlung existiert (möglicherweise fehlt eine Besetzung?)
Bitte beschreiben Sie, auf welche Weise es nicht funktioniert? Erhalten Sie die falschen Daten, eine Ausnahme, etwas anderes? Bitte geben Sie Details in der Frage an. – Richard
"Bitte Details in der Frage" (Code/Fehler in Kommentaren sind zu schwer zu lesen). – Richard
IEnumerable e_nameOfObjects = (von EL in myXMLDoc.Root.Elements ("Schritt") wobei (string) el.Attribute ("id") == "id_" + currentStep select el.Elements ("Komponente")).Auflisten(); –
jdweng