对XML执行类似集合的操作

时间:2016-07-25 14:19:57

标签: c# .net xml difference set-operations

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框架或第三方库中是否已有这样的机制,或者我是否必须从头开始实现它?

0 个答案:

没有答案