кто-нибудь, пожалуйста, помогите мне удалить внутренний тег xml, где я хочу удалить тег fn-group и fn id, но я хочу, чтобы его дочерний p, p и тег подчеркивания были сохранены
вот мой образец xml файла
<table-wrap-foot>
<fn-group type="footnotes">
<fn id="c89520-1-12">
<p>
<emphasis type="italic">Note</emphasis>:
In 1300, of the twenty-two cities in Italy that had populations over 20,000.
</p>
</fn>
</fn-group>
</table-wrap-foot>
</table-wrap>
вот мой код С#
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load("sample.xml");
XmlNodeList xmlnode = myXmlDocument.GetElementsByTagName("table-wrap-foot");
for (int i = 0; i < xmlnode.Count; i++)
{
if(xmlnode[i].InnerXml.Contains("<label>"))
{
}
else
{
#here i want to delete //fn-group and fn but not p tag
}
}
myXmlDocument.Save("sample.xml");
где я хочу удалить тег fn-group и fn id, но я хочу, чтобы его дочерний p, p и тег подчеркивания были сохранены здесь, это мой образец XML файла
Благодаря Appu
Если вы можете использовать Linq-To-Xml:
XElement root = XElement.Load(file);
XElement fnGroup = root.Descendants("fn-group").First(); // or .Element("fn-group"); if fn-group is a child of root
fnGroup.Parent.Add(fnGroup.Element("fn").Elements());
fnGroup.Remove();
root.Save(file);
Результат:
<table-wrap-foot>
<p>
<emphasis type="italic">Note</emphasis>:
In 1300, of the twenty-two cities in Italy that had populations over 20,000.
</p>
</table-wrap-foot>
Вы можете выбрать <fn-group>
и удалить его из родительского узла, а затем выбрать <p>
и добавить его в родительский узел, чтобы сохранить его (null
проверка пропущена для краткости):
XmlNodeList xmlnode = myXmlDocument.GetElementsByTagName("table-wrap-foot");
foreach (XmlNode node in xmlnode)
{
if (node.InnerXml.Contains("<label>"))
{
}
else
{
var fnGroup = node.SelectSingleNode(".//fn-group");
var p = node.SelectSingleNode(".//p");
//remove <fn-group> from it parent
node.RemoveChild(fnGroup);
//append <p> to <table-wrap-foot>
node.AppendChild(p);
}
}