编写一个返回一些 xml 的函数?
这可能是一个非常新手的问题,但我想做的是编写一个返回类似 XMLWriter 的函数,然后将其内容添加到另一个 xmlwriter。
例如:
XmlWriter ToXML()
{
XmlWriterSettings oSettings = new XmlWriterSettings();
oSettings.Indent = true;
oSettings.OmitXmlDeclaration = false;
oSettings.Encoding = Encoding.Unicode;
Stream output = Stream.Null;
XmlWriter writer = XmlWriter.Create(output, oSettings);
{
writer.WriteStartDocument(true);
writer.WriteComment("This BaseSprite was created by the in-phone level editor");
writer.WriteStartElement("testelement");
writer.WriteStartAttribute("Name");
writer.WriteValue("John Howard");
writer.WriteEndAttribute();
writer.WriteEndElement();
}
return writer;
}
void SomeOtherFunction()
{
XMLWriter xmlthing;
// add xml things to it
xmlthing += ToXML(); // now the contents of ToXML has been added in to xmlthing
}
这可能吗?
*问题更新:
XmlWriter writer;
XDocument doc = new XDocument();
{
writer = doc.CreateWriter();
writer.WriteStartDocument(true);
writer.WriteComment("This BaseSprite was created by the in-phone level editor");
writer.WriteStartElement("testelement");
writer.WriteStartAttribute("Name");
writer.WriteValue("John Howard");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.Close();
}
XDocument doc2 = new XDocument();
{
writer = doc2.CreateWriter();
writer.WriteStartDocument(true);
writer.WriteStartElement("testnestedelement");
writer.WriteStartAttribute("DUUUUUDE");
writer.WriteValue("WHERES MY CAR!?");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.Close();
}
doc.Element("testelement").Add(doc2); // how can I make it so that doc2 is added as a nested element in 'testlement' from doc?
This is probably a very newbie question but what I'm trying to do is write a function which returns something like XMLWriter and then adds its contents to another xmlwriter.
For example:
XmlWriter ToXML()
{
XmlWriterSettings oSettings = new XmlWriterSettings();
oSettings.Indent = true;
oSettings.OmitXmlDeclaration = false;
oSettings.Encoding = Encoding.Unicode;
Stream output = Stream.Null;
XmlWriter writer = XmlWriter.Create(output, oSettings);
{
writer.WriteStartDocument(true);
writer.WriteComment("This BaseSprite was created by the in-phone level editor");
writer.WriteStartElement("testelement");
writer.WriteStartAttribute("Name");
writer.WriteValue("John Howard");
writer.WriteEndAttribute();
writer.WriteEndElement();
}
return writer;
}
void SomeOtherFunction()
{
XMLWriter xmlthing;
// add xml things to it
xmlthing += ToXML(); // now the contents of ToXML has been added in to xmlthing
}
Is this possible?
*Question updated:
XmlWriter writer;
XDocument doc = new XDocument();
{
writer = doc.CreateWriter();
writer.WriteStartDocument(true);
writer.WriteComment("This BaseSprite was created by the in-phone level editor");
writer.WriteStartElement("testelement");
writer.WriteStartAttribute("Name");
writer.WriteValue("John Howard");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.Close();
}
XDocument doc2 = new XDocument();
{
writer = doc2.CreateWriter();
writer.WriteStartDocument(true);
writer.WriteStartElement("testnestedelement");
writer.WriteStartAttribute("DUUUUUDE");
writer.WriteValue("WHERES MY CAR!?");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.Close();
}
doc.Element("testelement").Add(doc2); // how can I make it so that doc2 is added as a nested element in 'testlement' from doc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您需要在应用程序的许多功能中组合 Xml,我更愿意使用 XmlDocument。
http://msdn.microsoft.com/en-us/library /system.xml.xmldocument.aspx
或 Silverlight 中的 XDocument:
http://msdn .microsoft.com/en-us/library/system.xml.linq.xdocument%28v=VS.95%29.aspx
然后您创建一个单个 XDocument 或XmlDocument 并将其传递给操作它所需的所有函数。
I would prefer to use XmlDocument if you need to compose the Xml among many function in your app.
http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx
or XDocument in Silverlight:
http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument%28v=VS.95%29.aspx
then you create a single XDocument or XmlDocument and you pass it across all the functions needed to manipulate it.