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