我在对 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 来更新这些值。
任何指针或建议?