1

我有一个这样的 LINQ 查询,我需要删除自动添加的 XML 声明标记。

var cubbingmessagexml = new XDocument(
                        new XElement("MESSAGE", new XAttribute("ID", "CUB"),
                        new XElement("RECORD", new XAttribute("STORENO", cubing.StoreID),
                                                new XAttribute("TPNB", cubing.ProductCode),
                                                new XAttribute("QUANTITY", cubing.Quantity),
                                                new XAttribute("CUBINGTIME", cubing.CubingDateTime.ToString("yyyyMMddHHmmss")),
                                                new XAttribute("SHELFFACING", cubing.ShelfFacing)
                                      )));



                    xml = cubbingmessagexml.ToString();

请帮忙

我不想保存 XML 文件,只需要将 XML 作为字符串返回

4

2 回答 2

2

如果您在顶部引用 xml 版本和内容,则有一个 xml writer 设置可以将其关闭。

var writerSettings = new XmlWriterSettings();
writerSettings.OmitXmlDeclaration = true;

using (var buffer = new StringWriter())
using (var writer = XmlWriter.Create(buffer, writerSettings))
{
    cubbingmessagexml.Save(writer);
    writer.Flush();
    string result = buffer.ToString();
}
于 2013-07-16T08:47:10.667 回答
1

跳过XDocument

var cubbingmessagexml = 
    new XElement("MESSAGE", new XAttribute("ID", "CUB"),
        new XElement("RECORD", 
            new XAttribute("STORENO", cubing.StoreID),
            new XAttribute("TPNB", cubing.ProductCode),
            new XAttribute("QUANTITY", cubing.Quantity),
            new XAttribute("CUBINGTIME", cubing.CubingDateTime.ToString("yyyyMMddHHmmss")),
            new XAttribute("SHELFFACING", cubing.ShelfFacing)
        )
    );

xml = cubbingmessagexml.ToString();

来自MSDN

请注意,如果您需要 XDocument 类提供的特定功能,您只需创建 XDocument 对象。在许多情况下,您可以直接使用 XElement。直接使用 XElement 是一种更简单的编程模型。

如前所述,XElement 类是 LINQ to XML 编程接口中的主要类。在许多情况下,您的应用程序不需要您创建文档。通过使用 XElement 类,您可以创建 XML 树、向其中添加其他 XML 树、修改 XML 树并保存它。

即使有XDocument声明也不显示。

于 2013-07-16T10:50:50.417 回答