我有一个像这样的xml:
<xmlRootNode>
<levelOneChildNode>
Some text
<levelTwoChildNode>
<levelThreeChildNode>More text</levelThreeChildNode>
</levelTwoChildNode>
</levelOneChildNode>
</xmlRootNode>
我无法更改xml格式,因为我的客户想要这种格式。我应该如何创建和装饰&#34; levelOneChildNode&#34;用于正确序列化的类?我不能使用XmlElement或XmlAttribute。除此之外,唯一能做到这一点的方法就是&#34;有些文字&#34;作为XmlElement并制作一个
string.replace("<textNode>", string.empty).replace("</textNode>", string.empty)
使用de serialized xml删除de tag,但这是一个crapy解决方案。
任何想法没有手动xml操作?
答案 0 :(得分:0)
我猜你有两种选择,它们都与手动xml操作有关:
答案 1 :(得分:0)
设置/检索/追加/创建XmlNotes(值):
//file name
string filename = @"d:\temp\XMLFile2.xml";
//create new instance of XmlDocument
XmlDocument _doc = new XmlDocument();
//load from file
_doc.Load(filename);
// Change text in xml
XmlNode node= _doc.SelectSingleNode("xmlRootNode/levelOneChildNode"); // [index of user node]
node.InnerText = value;
_doc.Save(@"path");
// Retrive value from xml
XmlNode node = _doc.SelectSingleNode("xmlRootNode/levelOneChildNode/levelTwoChildNode/someAttribute");
string value = node.InnerText;
// read or write to more elements
foreach (XmlNode node in doc.SelectNodes("xmlRootNode/levelOneChildNode/levelTwoChildNode"))
{
string data= node.SelectSingleNode("someAttribute").InnerTex; // get value of someAttribute.
node.InnerText = value;
}
// Append Note to levelOneChildNode Note
// Create second node
XmlNode secondNode = doc.CreateElement("SecondLevelNode");
secondNode .InnerText = "This title is created by code"
XmlNode firstNode= _doc.SelectSingleNode("xmlRootNode/levelOneChildNode");
firstNode.AppendChild(secondNode );
_doc.Save(@"path");