Редактировать XML Doc Всякий раз, когда есть вход, чтобы изменить его
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 Doc, когда мои входные данные не являются нулевыми в моем main. Мой XML выглядит так:
<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>
Таким образом, возможные виды правок похожи на изменения текущего контрольного примера, например, значения версии или дополнительной версии или имени, или даже добавление нового контрольного примера в актив или добавление полностью нового актива, если это необходимо. Как бы я пошел по этому поводу?
1 ответ
Используйте код, который я разместил в предыдущем посте. Насколько велик у вас ввод 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"));
}
}
}
}
}
}