2016-06-20 5 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) 
      { 

      } 

     } 
     } 
    } 

Привет, ребята, поэтому я в настоящее время пытаюсь редактировать XML-документ, когда мои входы не являются нулевыми в моей основной. Мой XML выглядит следующим образом:Редактировать XML Doc Всякий раз, когда есть вход для его изменения

<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> 

Так виды изменений, которые возможны, как изменения текущего тестового примера сек ofor пример значения версии или вложенной версии или имени или даже добавление нового тестового случая к активу или при необходимости добавить совершенно новый актив. Как я могу это сделать?

ответ

0

Используйте код, который я разместил при предыдущей публикации. Насколько велик объем ввода xml? Ответ будет отличаться от небольшого xml, чем большой xml. Какие материалы вы планируете использовать для модификаций.

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 Я действительно не понимаю, почему вы выполняете старую функцию converttodirectorytree, это не то же самое, что и раньше. Я закончил последний выпуск, благодаря вашей беспроигрышной помощи, это полностью противоречиво. Вроде. Его проблема перед последним, когда один и тот же файл XML я буду использовать позже для последней проблемы. Если пользователь хочет внести в него изменения, мы должны иметь возможность редактировать его из командной строки, я сделал свою функцию editxml, которая будет только будет использоваться, если есть вход, который не является нулевым. поэтому мне не нужно создавать каталоги? Я понятия не имею, почему ваши справочники для ссылок lol – PhillipsJP

+0

его больше, что я должен проверить, существуют ли текущие aseet и версии, если они его редактируют, и если они не добавят его – PhillipsJP