XML - 如果大于/小于数字

问题描述 投票:0回答:2

我正在为 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 &smte; 1</Visible>

        </Parameter>

是否有可能在 XML 中进行条件检查? 源代码使用 Python 编码,但 UI 使用 XML 编码。所以我对 XML 没有太多的练习。

xml if-statement conditional-statements
2个回答
0
投票

这工作正常,但现在我想将 == 更改为 >= 就像在 python 中一样。但这是行不通的。

当您说“这行不通”时,您是什么意思?

<Visible>anzahl >= 1</Visible>
是格式良好的 XML,那么是否存在错误或显示问题或其他问题?

API 有文档吗?也许这会告诉您它对发送的 XML 的要求。

对于

<=
,需要将
<
转义为格式良好的 XML。另一种方法是使用
CDATA
但我不确定您使用的 API 是否可以处理它。示例...

<Visible><![CDATA[anzahl <= 1]]></Visible>

0
投票

这不是一个关于 XML 本身的问题,而是一个关于特定 XML 词汇的问题。对于 XML 而言,

anzahl == 1
只是一个字符串。它由应用程序 (Allplan) 解释,您需要查阅该应用程序的文档以了解应如何输入不同的条件。

但是,您应该注意,

<
>
字符需要特殊处理:它们通常被转义为
&lt;
&gt;

实体

$smte;
有两个问题。第一个问题是,作为一个实体,它是在 HTML 中定义的,而不是在 XML 中定义的,除非您将 DTD 添加到定义它的文档中。在 HTML 中,它映射到字符
,Unicode 10924。第二个问题是,我认为 Allplan 不太可能在其 API 中使用字符 U+10924 - 尽管我不知道 API,所以我可能是错的.

© www.soinside.com 2019 - 2024. All rights reserved.