Ich habe die folgende XML-Datei:
<?xml version="1.0" encoding="utf-8"?>
<tmx version="1.4">
<header/>
<body>
<tu>
<tuv lang="en">
<seg>Hello?</seg>
</tuv>
<tuv lang="es">
<seg>¿Diga?</seg>
</tuv>
</tu>
</body>
</tmx>
Und ich versuche, diesen Code zu verwenden, um den Inhalt des ersten <seg>
Tags abzurufen :
root.Elements("tuv")
.Where(e => e.Attribute("lang").Value.Equals("en"))
.Select(e => e.Elements("seg"))
.SingleOrDefault()
.Where(d => d.Value.Equals(originalText))
.SingleOrDefault()
.Value;
originaltext
gleich "Hallo?" in diesem Fall. Das angegebene Ergebnis ist jedoch null. Ich gehe davon aus, dass meine Linq-Abfrage falsch ist. Könnte mir jemand einen Hinweis geben, wie man diese Abfrage richtig schreibt? Vielen Dank!
Die Elements
Funktion gibt eine Sammlung der direkten untergeordneten Elemente von zurück root
. Sie sollten die Descendants
Methode verwenden, die die Auflistung aller untergeordneten Elemente zurückgibt.
root.Descendants("tuv").Where(e => e.Attribute("lang").Value == "en")
.Select(e => e.Elements("seg")).SingleOrDefault()
.Where(d => d.Value == originalText).SingleOrDefault().Value
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen