如何忽略节点中的XML语法

时间:2018-01-18 19:00:28

标签: c# xml xslt xml-parsing

我想使用xml文档来存储将使用C#发送到IPL打印机以及其他一些数据的打印字符串。

我是否可以为节点分配一个属性,该属性将忽略该节点中的任何xml语法,并基本上将其视为字符串?例如,我有一个名为string的节点,它将包含我要发送给打印机的打印作业。问题是字符串中包含XML样式标记,这在Visual Studio中查看时会导致格式问题。我正在使用C#serializer来读取xml标记并将其内容复制到字符串中。什么是完成这项任务的最佳方法?

<string>
    <STX>R<ETX>
    <STX><ESC>C<SI>W565<SI>h<ETX>
    <STX><ESC>P<ETX>
    <STX>E3;F3<ETX>
    <STX>U1,LOGO;f3;o130,30;c2;h0,w0<ETX>
    <STX>H2,A1;f3;o130,220;c26;b0;h12;w12;d3,PART NO:<ETX>
    <STX>H3,B1;f3;o35,220;c26;b0;h8;w7;d3,Date Code<ETX>
    <STX>H4,C1;f3;o35,390;c26;b0;h8;w7;d3,Supplier Code<ETX>
    <STX>H5,D1;f3;o15,220;c26;b0;h8;w7;d3,lss 1<ETX>
    <STX>H6,E1;f3;o15,435;c26;b0;h8;w7;d3,ASSEMBLED IN USA<ETX>
    <STX>B7,CODEA;f3;o95,220;c0,3;w2;h55;r0;d0,10<ETX>
    <STX>H8,DATAA;f3;o130,350;c26;b0;h12;w12;d0;10<ETX>
    <STX>H9,DATAB;f3;o35,300;c26;b0;h8;w7;d0,8<ETX>
    <STX>H10,DATAC;f3;o35,510;c26;b0;h8;w7;d0,7<ETX>
    <STX>R<ETX>
    <STX><ESC>E3<CAN><ETX>
    <STX><ESC>F7<DEL>var0<ETX>
    <STX><ESC>F8<DEL>var1<ETX>
    <STX><ESC>F9<DEL>var2<ETX>
    <STX><ESC>F10<DEL>var3<ETX
    <STX><RS>1<US>1<ETX>
    <STX><ETB><FF><ETX>
  </string>

1 个答案:

答案 0 :(得分:0)

您可以使用CDATA为您的字符串关闭xml解析。

<string>
  <![CDATA[
    <STX>R<ETX>
    [...]
    <STX><ETB><FF><ETX>
  ]]>
</string>

开始和结束CDATA标记之间的所有内容都将严格视为字符串。有关详情,请参阅:What does CDATA in XML mean?