如何将 xml 转换为 C++ 字符串
How to convert xml to c++ string
我需要使我的 xml 成为一个有效的字符串,以便我们可以将其输入解析器。出于某种原因,我无法获得有效的字符串。我们拥有的所有示例都更多是缩略版,但这个必须是完整版(即 Canvas.Clip)。我的问题是,如何制作以下有效代码?
static const char* pCanvasData = "\
<Canvas>\
<Canvas.Name = \"Test\" />\
<Canvas.RenderTransform = \"1, 0, 0, 1, 0, 290\" />\
<Canvas.Opacity> = \"0.5\" />\
<Canvas.Clip = \"M 40,75 H 30 V 25 Z\" />\
<Path Fill=\"#FFFF0000\" />\
<Path.Data>\
<PathGeometry>\
<PathFigure StartPoint=\"30,70\" IsClosed=\"true\" />\
<PolyLineSegment Points=\"110,170\" />\
<PolyLineSegment Points=\"80,170\" />\ **********this is where the compiler says "error missing closing quote" and last PolyLineSegment is the wrong color (black instead of red), but it turns red again at the last quote of "80,170\" />\
</PathFigure>\
</PathGeometry>\
<\Path.Data>\
</Canvas>";
可能有遗漏的引语,但我没看到。另外,我可能缺少一些斜线,因为这是第一次对这种类型的 xps 使用非缩写 xml。我将不胜感激任何帮助!为了避免任何问题,我们不能将 xml 填入 xml 类。我需要这里的 char*。
您似乎在“\”之后有多余的空白字符。只需将鼠标光标放在这一行之后,然后点击擦除按钮一步。
如果您选择“查看”->“显示符号”->“显示空格和 TAB”,您实际上可以在 Notepad++ 中看到这一点
在 C++11 中有原始字符串文字,这可能会有所帮助:
static const char* pCanvasData = R"zzz(
<Canvas>
<Canvas.Name = "Test" />
<Canvas.RenderTransform = "1, 0, 0, 1, 0, 290" />
...
)zzz";
这样您就不必转义任何引号。
我需要使我的 xml 成为一个有效的字符串,以便我们可以将其输入解析器。出于某种原因,我无法获得有效的字符串。我们拥有的所有示例都更多是缩略版,但这个必须是完整版(即 Canvas.Clip)。我的问题是,如何制作以下有效代码?
static const char* pCanvasData = "\
<Canvas>\
<Canvas.Name = \"Test\" />\
<Canvas.RenderTransform = \"1, 0, 0, 1, 0, 290\" />\
<Canvas.Opacity> = \"0.5\" />\
<Canvas.Clip = \"M 40,75 H 30 V 25 Z\" />\
<Path Fill=\"#FFFF0000\" />\
<Path.Data>\
<PathGeometry>\
<PathFigure StartPoint=\"30,70\" IsClosed=\"true\" />\
<PolyLineSegment Points=\"110,170\" />\
<PolyLineSegment Points=\"80,170\" />\ **********this is where the compiler says "error missing closing quote" and last PolyLineSegment is the wrong color (black instead of red), but it turns red again at the last quote of "80,170\" />\
</PathFigure>\
</PathGeometry>\
<\Path.Data>\
</Canvas>";
可能有遗漏的引语,但我没看到。另外,我可能缺少一些斜线,因为这是第一次对这种类型的 xps 使用非缩写 xml。我将不胜感激任何帮助!为了避免任何问题,我们不能将 xml 填入 xml 类。我需要这里的 char*。
您似乎在“\”之后有多余的空白字符。只需将鼠标光标放在这一行之后,然后点击擦除按钮一步。
如果您选择“查看”->“显示符号”->“显示空格和 TAB”,您实际上可以在 Notepad++ 中看到这一点
在 C++11 中有原始字符串文字,这可能会有所帮助:
static const char* pCanvasData = R"zzz(
<Canvas>
<Canvas.Name = "Test" />
<Canvas.RenderTransform = "1, 0, 0, 1, 0, 290" />
...
)zzz";
这样您就不必转义任何引号。