2016-06-20 3 views
0
public void ModifyXML(string inputAsset, string test, string version) 
    { 
     File.Create(Constants.XMLDoc).Close(); 
     XmlReader xReader = XmlReader.Create(xmlDoc); 
     while (!xReader.EOF) 
     { 
     if (xReader.Name != "Asset") 
     { 
      xReader.ReadToFollowing("Asset"); 
     } 

     //If we have not reached the end of the file 
     if (!xReader.EOF) 
     { 
      XElement asset = (XElement)XElement.ReadFrom(xReader); 
      string branchName = (string)asset.Attribute("Name"); 

      if (branchName == inputAsset) 
      { 

      } 

     } 
     } 
    } 

Hallo Leute, also versuche ich gerade, ein XML-Dokument zu bearbeiten, wenn meine Eingaben nicht null in meinem Haupt sind. Meine XML sieht wie folgt aus:Edit XML Doc Immer wenn es eine Eingabe zum Ändern gibt

<Properties> 
<Assets> 

<Asset Name="" Version=""> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    </Asset> 

<Asset Name="" Version=""> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    <TestCase Name="" Version="" SubVersion="" /> 
    </Asset> 
</Assets> 
</Properties> 

So sind die Arten von Änderungen, die möglich sind, wie Änderungen eines aktuellen Testfall s ofor Beispiel der Versionswert oder Unterversion oder Namen oder sogar einen neuen Testfall auf einen Vermögenswert Hinzufügen oder wenn Sie ein komplett neues Asset hinzufügen möchten. Wie würde ich darüber gehen?

Antwort

0

Verwenden Sie den Code, den ich auf dem vorherigen Posting gepostet habe. Wie groß ist deine XML-Eingabe? Die Antwort wäre für kleine xml anders als für große xml. Welche Eingaben möchten Sie für die Änderungen verwenden?

public void ConvertToDirectoryTree() 
     { 
      XmlReader xReader = XmlReader.Create(xmlDoc); 

      while (!xReader.EOF) 
      { 
       if (xReader.Name != "Asset") 
       { 
        xReader.ReadToFollowing("Asset"); 
       } 

       if (!xReader.EOF) 
       { 
        XElement asset = (XElement)XElement.ReadFrom(xReader); 
        foreach (XElement testCase in asset.Elements("TestCase")) 
        { 

         //We check if the asset is a main branch folder 
         if (IsMainBranch((string)asset.Attribute("Name") + (string)asset.Attribute("Version"))) 
         { 
          //If the folder exists already then add it inside this folder 
          if (Directory.Exists(root + (string)asset.Attribute("Name"))) 
          { 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name") + "\\" + (string)testCase.Attribute("Version") + (string)testCase.Attribute("SubVersion")); 
          } 
          //Else we need to create the folder and then add it inside this folder 
          else 
          { 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name")); 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name") + "\\" + (string)testCase.Attribute("Version") + (string)testCase.Attribute("SubVersion")); 
          } 
         } 
         //If it is not a main branch folder then we need to handle the name differently 
         else 
         { 
          //If the folder exists already then add it inside this folder 
          if (Directory.Exists(root + (string)asset.Attribute("Name") + "-" + (string)asset.Attribute("Version"))) 
          { 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name") + "-" + (string)asset.Attribute("Version") + "\\" + (string)testCase.Attribute("Version") + (string)testCase.Attribute("SubVersion")); 
          } 
          //Else we need to create the folder and then add it inside this folder 
          else 
          { 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name") + "-" + ((string)asset.Attribute("Version")).Replace(".", "_")); 
           Directory.CreateDirectory(root + (string)asset.Attribute("Name") + "-" + (string)asset.Attribute("Version") + "\\" + (string)testCase.Attribute("Version") + (string)testCase.Attribute("SubVersion")); 
          } 

         } 
        } 
       } 
      } 
     } 
+0

ok Ich verstehe wirklich nicht, warum Sie die alte Convertodirectorytree-Funktion machen, das ist nicht dasselbe wie zuvor. Ich habe die letzte Ausgabe fertiggestellt, dank Ihrer großen Hilfe, die komplett anders ist. Irgendwie. Es ist ein Problem vor dem letzten, wo die gleiche XML-Datei später für das letzte Problem verwendet wird. Wenn der Benutzer Änderungen daran vornehmen möchte, müssen wir es an der Eingabeaufforderung bearbeiten können. Ich habe meine Funktion editxml gemacht, die nur funktioniert Wird verwendet, wenn eine Eingabe vorhanden ist, die nicht null ist. also muss ich keine Verzeichnisse erstellen? Ich habe keine Ahnung, warum Ihre Verzeichnisse schreiben lol – PhillipsJP

+0

ist mehr, dass ich überprüfen muss, ob die aktuellen aseet und Versionen existieren, wenn sie es bearbeiten und wenn sie es nicht hinzufügen – PhillipsJP