【问题标题】:Scriptella: XML to DB: Insert Into from XPATHScriptella:XML 到 DB:从 XPATH 插入
【发布时间】:2014-01-31 17:29:38
【问题描述】:

我有一个如下所示的 XML 文件:

<XML>
  <Table name='test'>
    <Row>
      <Field name='key'>1000</Field>
      <Field name='text'>Test</Field>
    </Row>
  </Table>
</XML>

id 喜欢解析这个 xml 并在插入语句中使用它:

<query  connection-id="in">
    /XML/Table/Row

    <script connection-id="out">
        INSERT INTO X t (
                t.entitykey, 
                t.text
             )
             VALUES 
             (
                 ????????
             );

    </script>
</query>

如何使用 XPATH 从插入语句中访问特定的字段标记? 我们更喜欢使用一个 XSD 来考虑所有表格布局,而不是为每个表格维护 n xsd,因此采用 Field[@name] 设计。

谢谢 马蒂亚斯

【问题讨论】:

    标签: scriptella


    【解决方案1】:

    Xpath driver 公开了一个名为node 的变量,它为在当前返回的节点上执行 xpath 表达式提供了上下文。您可以使用以下表达式来获取特定字段的值:

    <script connection-id="out">
        INSERT INTO X t (t.entitykey, t.text)
             VALUES ( ?{node.getString("./Field[@name = 'text']")} );
    </script>
    

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      相关资源
      最近更新 更多