用C语言将字符串转换为XML格式



我有一个问题,有没有一种算法可以将相应的逻辑表达式转换为字符串格式?

例如:

我正在从输入文件中以字符串的形式加载逻辑表达式:

(X&Y)|Z

现在将其转换为xml格式,在一个新文件中获得类似的内容:

<expression>
<or>
<operand>Z</operand>
<and>
<operand>X</operand>
<operand>Y</operand>
</and>
</or>
</expression>

提前感谢!

(响应xml标记。)

也许您可以使用不可见的xml(ixml),SO信息选项卡列出了几个资源。

使用诸如之类的语法

ixml version "1.0".
expression: expr.
-expr: operand; and; or; not.
and: expr, -"&", expr.
or: expr, -"|", expr.
not: -"!", operand.
-operand: id; -"(", expr, -")".
id: letter.
-letter: ["A"-"Z"].

CCD_ 2处理器CCD_ 3

java -jar '/usr/local/share/java/coffeepot-1.99.11.jar' 
--grammar:expr-bool.ixml --pretty-print '(X&Y)|Z'

产生以下输出:

<expression>
<or>
<and>
<id>X</id>
<id>Y</id>
</and>
<id>Z</id>
</or>
</expression>

使用输入(X&Y)|Z&!(A|B)coffeepot(默认情况下)输出第一个(在本例中为2个)可能解析根元素并将其作为<expression xmlns:ixml="http://invisiblexml.org/NS" ixml:state="ambiguous">指出歧义。

如果解析失败,输出可能类似于:

<fail xmlns:ixml="http://invisiblexml.org/NS" ixml:state="failed">
<line>1</line>
<column>14</column>
<pos>14</pos>
<end-of-input>true</end-of-input>
<permitted>['A'-'Z']</permitted>
</fail>

最新更新