代码之家  ›  专栏  ›  技术社区  ›  Retrocoder

XML的表达式生成器

  •  0
  • Retrocoder  · 技术社区  · 14 年前

    在我的程序中,我通过了一些XML。如果此XML中的值满足用户定义的条件,我将存储XML,否则它将被丢弃。我遇到的问题是,我需要允许用户定义条件(也可以将多个元素与__或_157;和__和_157;组合在一起),然后在获得XML时应用它。这是一个C应用程序,有人能推荐一个库、工具或帮助,以何种方式解决这个问题?下面显示的是我将接收的XML。用户可能只希望在以下情况下存储此 <unit> =1 和(第一部分 <data> = Z <data> 第二次昏迷后出现ABC)。

    <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>
    
    1 回复  |  直到 14 年前
        1
  •  -1
  •   Flynn1179    14 年前

    您的用户能看到XML吗?如果是这样,您只需允许用户输入一个xpath表达式,例如

    /interface/data/unit=1

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

    然后简单地做

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

    imho应该鼓励使用XML的任何人学习xpath;您可以在输入旁边提供一些简单的示例来帮助您。

    如果您的用户看不到XML,您最好有一些用户可以选择的预定义条件,然后提供一个值,否则您将不得不创建一个完整的表达式解析器,这对于类似这样的任务来说可能是多余的。

    推荐文章