Я работал над удалением нескольких узлов XML из строки XML. Мое требование - удалить узлы XML, соответствующие элементам списка. Я пытался получить дочерние узлы и проверить, есть ли имя дочернего узла в списке свойств. Я создал список свойств, представленных в классе MovieDetails.
public class MovieDetails
{
public string MovieName { get; set; }
public string MovieId { get; set; }
public string MovieGenre { get; set; }
}
My Xml:
<MovieContent>
<MovieDetails>
<MovieName>Movie_Name_1</MovieName>
<MovieId>MovieId_1</MovieId>
<MovieGenre>MovieGenre_3</MovieGenre>
<AdditionalInformation>HAHAHHAHA</AdditionalInformation>
</MovieDetails>
<MovieDetails>
<MovieName>Movie_Name_2</MovieName>
<MovieId>MovieId_2</MovieId>
<MovieGenre>MovieGenre_3</MovieGenre>
<AdditionalInformation>FOOOO</AdditionalInformation>
</MovieDetails>
<MovieDetails>
<MovieName>Movie_Name_3</MovieName>
<MovieId>MovieId_3</MovieId>
<MovieGenre>MovieGenre_3</MovieGenre>
<AdditionalInformation></AdditionalInformation>
</MovieDetails>
</MovieContent>
Я попытался использовать для l oop, но не смог получить желаемый результат. Но из приведенного ниже кода я мог удалить 1 узел каждый раз.
var movieDetailsNode = xmlContent.DocumentElement.ChildNodes;
var properties = typeof(MovieDetails).GetProperties().Select(x => x.Name).ToList();
foreach (XmlNode node in movieDetailsNode )
{
var childNodeList = node.ChildNodes;
for (int i = 0; i < childNodeList.Count; i++)
{
var childNodeName = childNodeList[0].Name;
if (properties.Contains(childNodeName))
{
childNodeList[i].ParentNode.RemoveChild(childNodeList[i]);
}
}
}
Может ли кто-нибудь помочь в достижении результата ниже xml
Результат XML:
<MovieContent>
<MovieDetails>
<AdditionalInformation>HAHAHHAHA</AdditionalInformation>
</MovieDetails>
<MovieDetails>
<AdditionalInformation>FOOOO</AdditionalInformation>
</MovieDetails>
<MovieDetails>
<AdditionalInformation></AdditionalInformation>
</MovieDetails>
</MovieContent>