【问题标题】:DataMapper: tag to key relationship?DataMapper:标签到键的关系?
【发布时间】:2013-06-17 21:08:42
【问题描述】:

我在 MuleStudio 中使用 DataMapper 组件。我想以这种格式转换我拥有的数据

<item type="1" name="data">
    <children name="action">
        <values>login.01</values>
    <children>
</item>

这样的事情

<item>
    <action>login.01</action>
</item>

这可以通过 Mule 实现吗?还是我需要制作一个自定义 Java 解析器?

【问题讨论】:

  • 源是不是真正的XML?我问是因为&lt;children&gt; 不是由&lt;/children&gt; 关闭,而是由&lt;children&gt; 关闭,这不是XML。
  • 糟糕,抱歉,我只是为这篇文章复制了一些内容,很好。但是是的,真正的文件会有一个结束标签。

标签: mule datamapper mule-studio


【解决方案1】:

假设源是 XML,不需要使用 DataMapper:一个简单的 XSL-T 转换器就可以了:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="item">
    <item>
      <xsl:apply-templates />
    </item>
  </xsl:template>

  <xsl:template match="children">
    <xsl:element name="{@name}">
      <xsl:apply-templates select="values/text()" />
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

【讨论】:

  • 如果源文件有一些具有不同命名空间的元素怎么办?例如,&lt;ns:items&gt; &lt;ns:item type="1" name="data"&gt; &lt;children name="action"&gt; &lt;values&gt;login.01&lt;/values&gt; &lt;children&gt; &lt;/ns:item&gt; &lt;/ns:items&gt;
  • 只需在stylesheet 元素上声明命名空间并在templates 中使用它们。
猜你喜欢
  • 1970-01-01
  • 2013-01-11
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 2014-05-18
  • 1970-01-01
相关资源
最近更新 更多