0

在我的程序中,我通过了一些 XML。如果此 XML 中的值满足用户定义的标准,我将存储该 xml,否则它会被丢弃。我遇到的问题是我需要能够允许用户定义标准(也将多个元素与“OR”和“AND”结合起来),然后在我获得 XML 时应用它。这是一个 C# 应用程序,任何人都可以推荐一个库、工具或帮助,我应该以哪种方式解决这个问题?下面显示的是我将收到的 XML。如果 AND( OR<unit> =1的第一部分在第二个逗号之后有 ABC),用户可能只想存储这个。<data> = Z<data>

<interface>
  <mac>12345</mac>
  <device>DeviceTypeA</device>
  <id>TestUnit</id>
  <data>
    <unit>1</unit>
    <transaction>
      <event>0</event>
      <data>Z,0,ABC,1234</data>
      <time>2010-06-29T11:33:44.0000000Z</time>
    </transaction >
  </data>
</interface>
4

1 回答 1

-1

您的用户是否可以看到 XML?如果是这样,您可以简单地允许用户输入 XPath 表达式,例如

/interface/data/unit=1

或者

substring-before(',',/interface/data/transaction/data)='Z'

然后简单地做

if (xml.SelectNodes(xPathExpression) == null) /*discard*/

恕我直言,应该鼓励任何使用 XML 的人学习 XPath;您可以在输入旁边提供一些简单的示例以提供帮助。

如果你的用户看不到 XML,你最好有一些预定义的条件,用户可以从中选择然后提供一个值,否则你将不得不创建一个完整的表达式解析器,这可能是像这样的任务矫枉过正。

于 2010-06-30T10:22:38.133 回答