相关疑难解决方法(0)

LINQ:根据属性值从XML中删除元素?

如何根据匹配的属性值删除xml中的任何元素?

这是我的XML:

<Projects>
    <Project serverUrl="tcp://xyz1:xxx/sdfsdf.rem" projectName="project1" />
    <Project serverUrl="tcp://xyz2:xxx/sdfsdf.rem" projectName="project2" />
    <Project serverUrl="tcp://xyz3:xxx/sdfsdf.rem" projectName="project3" />
    <Project serverUrl="tcp://xyz4:xxx/sdfsdf.rem" projectName="project4" />
    <Project serverUrl="tcp://xyz5:xxx/sdfsdf.rem" projectName="project5" />
    <Project serverUrl="tcp://xyz6:xxx/sdfsdf.rem" projectName="project6" />
   </Projects>
Run Code Online (Sandbox Code Playgroud)

我使用以下LINQ查询:

var remove = from elemet in xdoc.Elements("Projects").Elements("Project")
                                 where elemet.Attribute("projectName").Value == "project1"
                                 select elemet.Parent.Remove();
Run Code Online (Sandbox Code Playgroud)

我在select上得到编译时错误:

select子句中的表达式类型不正确

编辑答案:这个对我有用.谢谢大家

var xElement = (from elemet in xdoc.Elements("Projects").Elements("Project")
                            where elemet.Attribute("projectName").Value == foundProject
                            select elemet);
            xElement.Remove();
Run Code Online (Sandbox Code Playgroud)

c# xml linq linq-to-xml

7
推荐指数
3
解决办法
1万
查看次数

在C#中从XML删除元素

下面是xml,我需要删除代码等于“ ZOOMLA”的Element SMS。我正在使用C#代码,如下所示,但它不起作用。并给我“对象引用错误”

 XDocument doc = XDocument.Parse (xml);
 XElement sms = (from xml2 in doc.Descendants ("SMSList").Descendants ("SMS") where xml2.Attribute ("Code").Value == code select xml2).FirstOrDefault ();
 sms.Remove ();
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-16" ?>
    <Parent>
        <ServiceList />
        <VoiceList />
        <SMSList>
            <SMS>
                <Code>ZOOMLA</Code>
                <Name>Zoom Limited</Name>
                <SubType>Prepaid</SubType>
                <Fields>
                    <Field>
                        <ID>222</ID>
                        <Name>Charges</Name>
                        <CValue>1</CValue>
                        <Priority>0</Priority>
                    </Field>
                </Fields>
            </SMS>
        </SMSList>
        <DataList />
        <LBCOffer />
    </Parent>
Run Code Online (Sandbox Code Playgroud)

c# xml xelement xml-parsing

1
推荐指数
1
解决办法
1198
查看次数

标签 统计

c# ×2

xml ×2

linq ×1

linq-to-xml ×1

xelement ×1

xml-parsing ×1