Announcement

Collapse
No announcement yet.

Bestimmte Werte aus XML lesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bestimmte Werte aus XML lesen

    Hallo zusammen,

    ich habe einen Haufen XML-Dateien in denen Controls beschrieben werden, darunter auch die Caption(angezeigter Text) des Controls als auch der TipText (ToolTips). Beides kann in mehreren Sprachen vorhanden sein. Wenn jetzt eine neue Sprache hinzu kommen soll, müssen alle Captions und TipTexte in eine Excel-datei geschrieben werden. Dort soll man dann einfacher die einzelnen Texte übersetzen können und zum Schluss soll das ganze dann wieder auf das XML geschrieben werden.

    Mein Problem:
    Ich habe keinen Plan, wie ich so ein XML am besten lese um die entsprechenden Werte zu bekommen. Was ich brauche ist der Name des Controls und dann eben die entsprechenden Texte.
    Ich steh grad völlig aufm Schlauch...
    Im Anhang hab ich mal ein XML als Beispiel angehängt.

    Ich bin dankbar für jeglichen Tip
    Andi
    Attached Files

  • #2
    Hallo Andreas,

    warum verwendest du nicht eine üblich Global-/Lokalisierungsmöglichkeit? Diese werden auch zum Teil von .net gut unterstützt.

    Das XML könntest du per XmlSerializer in entsprechende Klassen deserialisieren und von diesen die "Werte" beziehen (ev. per Datenbindung). Für die Erzeugung der Klassen schau dir das Tool xsd.exe an.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hallo Günther,

      leider sagt die Vorgabe von "Oben" das es in ein Excel-File soll.

      Ich hab das jetzt mal so gemacht: (die Consolenausgabe ersetze ich dann durch das Eintragen ins Excel Sheet)
      [highlight=c#]
      public void ExportLanguagesToExcel(XElement elem = null)
      {
      if (elem == null) elem = this.xmlDokument.Root;

      IEnumerable<XElement> childList = from el in elem.Elements()
      select el;
      foreach (XElement e in childList)
      {
      switch (e.Name.ToString())
      {
      case "Caption":
      case "Tiptext":
      if (e.Parent.Attribute("Name") != null)
      {
      Console.Write(e.Parent.Attribute("Name").ToString( ) + " ");
      Console.Write(e.Name.ToString() + " ");
      }
      ExportLanguagesToExcel(e);
      Console.Write("\n");
      break;
      case "Language":
      Console.Write(e.Attribute("V1").ToString() + " ");
      break;
      default:
      if (e.HasElements) ExportLanguagesToExcel(e);
      break;
      }
      }
      }
      [/highlight]

      Comment


      • #4
        Hallo Andreas,

        leider sagt die Vorgabe von "Oben" das es in ein Excel-File soll.
        Das macht ja Sinn, denn die Dolmetscher können damit umgehen.
        Dem steht aber der ".net-übliche-Weg" nicht entgegen. Mit dem Zeta Resource Editor z.B. können die Ressourcen zum Übersetzen nach Excel exportiert werden und anschließend wieder importiert werden.

        Du kannst aber auch versuchen das XML im Excel zu öffnen (das geht manchmal ohne XSLT auch schon ganz gut).

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Originally posted by gfoidl View Post
          Du kannst aber auch versuchen das XML im Excel zu öffnen (das geht manchmal ohne XSLT auch schon ganz gut).
          Das hab ich doch jetzt gleich mal ausprobiert
          Lässt sich öffnen, aber sieht sehr seltsam aus dann. Also eher nichts für die Übersetzer. Zudem steht dann da auch zu viel drin. Das brauchen die gar nicht alles zu sehen, geschweige denn dann herumzufummeln

          Ich denk, so wie ich es jetzt grad mache, bin ich schon auf nem guten weg, oder?

          Comment


          • #6
            Hallo Andreas,

            Ich denk, so wie ich es jetzt grad mache, bin ich schon auf nem guten weg, oder?
            Ja schaut brauchbar aus

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment

            Working...
            X