我正在为 API(Allplan,它是一个 CAD 程序)编码,但遇到了问题:
这是我的代码:
<Parameter>
<Name>Row2</Name>
<Text>2.</Text>
<ValueType>Row</ValueType>
<Visible>anzahl == 1</Visible>
</Parameter>
这工作正常,但现在我想将 == 更改为 >= 就像在 python 中一样。但这是行不通的。
我尝试使用:
<Parameter>
<Name>Row2</Name>
<Text>2.</Text>
<ValueType>Row</ValueType>
<Visible>anzahl ⪬ 1</Visible>
</Parameter>
是否有可能在 XML 中进行条件检查? 源代码使用 Python 编码,但 UI 使用 XML 编码。所以我对 XML 没有太多的练习。
这工作正常,但现在我想将 == 更改为 >= 就像在 python 中一样。但这是行不通的。
当您说“这行不通”时,您是什么意思?
<Visible>anzahl >= 1</Visible>
是格式良好的 XML,那么是否存在错误或显示问题或其他问题?
API 有文档吗?也许这会告诉您它对发送的 XML 的要求。
对于
<=
,需要将 <
转义为格式良好的 XML。另一种方法是使用 CDATA
但我不确定您使用的 API 是否可以处理它。示例...
<Visible><![CDATA[anzahl <= 1]]></Visible>
这不是一个关于 XML 本身的问题,而是一个关于特定 XML 词汇的问题。对于 XML 而言,
anzahl == 1
只是一个字符串。它由应用程序 (Allplan) 解释,您需要查阅该应用程序的文档以了解应如何输入不同的条件。
但是,您应该注意,
<
和>
字符需要特殊处理:它们通常被转义为<
和>
。
实体
$smte;
有两个问题。第一个问题是,作为一个实体,它是在 HTML 中定义的,而不是在 XML 中定义的,除非您将 DTD 添加到定义它的文档中。在 HTML 中,它映射到字符 ⪬
,Unicode 10924。第二个问题是,我认为 Allplan 不太可能在其 API 中使用字符 U+10924 - 尽管我不知道 API,所以我可能是错的.