.net 如何用C++;。网?

.net 如何用C++;。网?,.net,xml,c++-cli,.net,Xml,C++ Cli,我有一个字符串,其中有大量的XML代码。我想将此字符串写入文件,以便其格式良好(带有缩进),如: 我根本不会使用LINQ本身。我只需要使用一个XMLAPI——可能是LINQ到XML。不要被愚弄了——术语中的“LINQ”实际上只是意味着它是一个API,设计用于与LINQto对象一起很好地工作。不过,使用它不需要任何语言集成 下面是一个非常简单的C#示例: 我确信你可以把C→C++转换成我尝试过,但是有一些问题(见上面的文章)。我觉得有点难以相信LINQtoXML在C++下失败了…毕竟是同一个代码。

我有一个字符串,其中有大量的XML代码。我想将此字符串写入文件,以便其格式良好(带有缩进),如:


我根本不会使用LINQ本身。我只需要使用一个XMLAPI——可能是LINQ到XML。不要被愚弄了——术语中的“LINQ”实际上只是意味着它是一个API,设计用于与LINQto对象一起很好地工作。不过,使用它不需要任何语言集成

下面是一个非常简单的C#示例:


我确信你可以把C→C++转换成

我尝试过,但是有一些问题(见上面的文章)。我觉得有点难以相信LINQtoXML在C++下失败了…毕竟是同一个代码。您确定没有尝试使用其他可能格式不正确的文档吗?您可以使用
Save
发布版本的完整堆栈跟踪吗?正是这段代码导致了一个异常:System::Xml::Linq::XDocument^doc=gcnew System::Xml::Linq::XDocument();文档->解析(“文本”);doc->Save(“output.xml”);如何进行堆栈跟踪?VS2013提供的“调用堆栈”只包含运行此代码的my func。@ars:啊,我现在看到问题了,我想-您调用的是
Parse
,好像它是一个实例方法。这是一个返回文档的静态方法。您基本上是创建一个空文档,然后解析文本以创建忽略的第二个文档,然后尝试保存该空文档。
<table>
   <tr>
      <td>
         <style1>text</style1>
      </td>
   </tr>
</table>
<table><tr><td><style1>text</style1></td></tr></table>
...
System::Xml::Linq::XDocument^ doc = System::Xml::Linq::XDocument::Parse(article_string);
formatted_string = doc->ToString();
...
using System;
using System.Xml.Linq;

public class Test
{
    public static void Main()
    {
        // Use XDocument.Load to load from a file
        XDocument doc = XDocument.Parse("<table><tr><td><style1>text</style1></td></tr></table>");
        doc.Save(Console.Out);
    }
}
<?xml version="1.0" encoding="ibm850"?>
<table>
  <tr>
    <td>
      <style1>text</style1>
    </td>
  </tr>
</table>
XDocument.Load("input.xml").Save("output.xml");