我在对 XML 片段进行 XSLT 转换时遇到问题。源 XML 如下所示:
<XXX>
<Name>Sample</Name>
<MMM>
<AAA ID="A"/>
<MMM>
<BBB ID="B"/>
<MMM>
<AA ID="C"/>
<BB ID="D"/>
</MMM>
</MMM>
</MMM>
</XXX>
但需要转化为:
<XXX>
<Name>Sample</Name>
<MMM>
<MMM>
<MMM>
<AAA ID="A"/>
<BBB ID="B"/>
</MMM>
<AA ID="C"/>
</MMM>
<BB ID="D"/>
</MMM>
</XXX>
规则很简单,MMM元素只能有两个子元素节点。如果这些节点中只有一个恰好是另一个 MMM,则它需要占据第一个位置。
使用代码很容易,但是这些 XML 片段是 SQL 数据库中 XML 列的值,我想使用 SQL 和 XSLT 来更新这些值。
任何指针或建议?