0

C#/.NET 中是否有一种机制可以以一般方式对复杂的 XML 结构执行类似集合的操作?

例如,假设我有以下 XML 结构 A:

<a:rPr lang="en-US" sz="1500" b="1" i="1">                            
<a:effectLst>
    <a:glow rad="139700">
        <a:schemeClr val="accent4">
            <a:satMod val="175000"/>
            <a:alpha val="40000"/>
        </a:schemeClr>
    </a:glow>
    <a:innerShdw blurRad="63500" dist="50800" dir="18900000">
        <a:prstClr val="black">
            <a:alpha val="50000"/>
        </a:prstClr>
    </a:innerShdw>
    <a:reflection blurRad="6350" stA="60000" endA="900" endPos="58000" dir="5400000" sy="-100000" algn="bl" rotWithShape="0"/>
</a:effectLst>    
</a:rPr>

第二个 XML 结构 B:

<a:rPr lang="en-US" sz="1500" b="1" i="1">                            
<a:effectLst>
    <a:innerShdw blurRad="63500" dist="50800" dir="18900000">
        <a:prstClr val="black">
            <a:alpha val="50000"/>
        </a:prstClr>
    </a:innerShdw>
    <a:reflection blurRad="6350" stA="60000" endA="900" endPos="58000" dir="5400000" sy="-100000" algn="bl" rotWithShape="0"/>
</a:effectLst>    
</a:rPr>

我希望能够执行联合、交叉或差异等操作。例如,我期望 A - B 得到以下结果:

<a:rPr lang="en-US" sz="1500" b="1" i="1">                            
<a:effectLst>        
    <a:glow rad="139700">
        <a:schemeClr val="accent4">
            <a:satMod val="175000"/>
            <a:alpha val="40000"/>
        </a:schemeClr>
    </a:glow>
</a:effectLst>    
</a:rPr>

.NET 框架或 3rd 方库中是否已经有这样的机制,或者我必须从头开始实现它?

4

0 回答 0