我不,如果这有意义的话。但我有一个非常大的XML文件。如果我的兄弟姐妹满足和条件,我想删除所有的孩子和父母。
因此,每当我的节点<Periode> <gyldigTil>
拥有数据且不为空时,请从我的xml文件中删除其父级和子级。每次节点为空时,请保留父子节点和兄弟节点。
这是我的Linq C#
string file = Server.MapPath("ResponseCvrXML/" + "24347214" + ".xml");
string empty = " ";
XDocument xd = XDocument.Load(file);
xd.Root.Element("hits").Elements("_source").ToList()
.ForEach(x =>
{
var name = x.Descendants("periode").First();
if (name.Element("gyldigTil").Value == empty) {
}
else
{
x.Remove();
}
});
xd.Save(Server.MapPath("ResponseCvrXML/" + "24347214" + ".xml"));
和我的XML文件
<Root>
<took>24</took>
<timed_out>false</timed_out>
<_shards>
<total>6</total>
<successful>6</successful>
<failed>0</failed>
</_shards>
<hits>
<total>1</total>
<max_score>17.372461</max_score>
<hits>
<_index>cvr-permanent-prod-20170205</_index>
<_type>virksomhed</_type>
<_id>4001115172</_id>
<_score>17.372461</_score>
<_source>
<Vrvirksomhed>
<cvrNummer>24347214</cvrNummer>
<regNummer>
<regnummer>A/S42018</regnummer>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>1999-10-18</gyldigTil>
</periode>
<sidstOpdateret>2015-02-10T00:00:00+01:00</sidstOpdateret>
</regNummer>
<brancheAnsvarskode>0</brancheAnsvarskode>
<reklamebeskyttet>true</reklamebeskyttet>
<navne>
<navn>RIBO VINDUER A/S</navn>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>1992-03-27</gyldigTil>
</periode>
<sidstOpdateret>2015-03-19T00:00:00+01:00</sidstOpdateret>
</navne>
<navne>
<navn>VELFAC INTERNATIONAL A/S</navn>
<periode>
<gyldigFra>1992-03-28</gyldigFra>
<gyldigTil>1995-01-17</gyldigTil>
</periode>
<sidstOpdateret>2015-03-19T00:00:00+01:00</sidstOpdateret>
</navne>
<binavne>
<navn>VELFAC INTERNATIONAL A/S</navn>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>1992-03-27</gyldigTil>
</periode>
<sidstOpdateret>2015-02-10T00:00:00+01:00</sidstOpdateret>
</binavne>
<binavne>
<navn>VELFAC INTERNATIONAL A/S</navn>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2015-02-10T00:00:00+01:00</sidstOpdateret>
</binavne>
<beliggenhedsadresse>
<landekode>DK</landekode>
<fritekst />
<vejkode>6375</vejkode>
<kommune>
<kommuneKode>667</kommuneKode>
<kommuneNavn>RINGKØBING</kommuneNavn>
<periode>
<gyldigFra />
<gyldigTil>2006-12-31</gyldigTil>
</periode>
<sidstOpdateret>1999-10-15T00:00:00+02:00</sidstOpdateret>
</kommune>
<husnummerFra>5</husnummerFra>
<vejnavn>Ribovej</vejnavn>
<bynavn>Rindum</bynavn>
<postnummer>6950</postnummer>
<postdistrikt>Ringkøbing</postdistrikt>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>2006-12-31</gyldigTil>
</periode>
<sidstOpdateret>2013-11-22T22:40:23+01:00</sidstOpdateret>
</beliggenhedsadresse>
<beliggenhedsadresse>
<landekode>DK</landekode>
<fritekst />
<vejkode>1605</vejkode>
<kommune>
<kommuneKode>760</kommuneKode>
<kommuneNavn>RINGKØBING-SKJERN</kommuneNavn>
<periode>
<gyldigFra>2007-01-01</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2006-11-13T00:00:00+01:00</sidstOpdateret>
</kommune>
<husnummerFra>5</husnummerFra>
<adresseId />
<sidstValideret />
<husnummerTil />
<bogstavFra />
<bogstavTil />
<etage />
<sidedoer />
<conavn />
<postboks />
<vejnavn>Ribovej</vejnavn>
<bynavn>Rindum</bynavn>
<postnummer>6950</postnummer>
<postdistrikt>Ringkøbing</postdistrikt>
<periode>
<gyldigFra>2007-01-01</gyldigFra>
<gyldigTil>2011-05-31</gyldigTil>
</periode>
<sidstOpdateret>2006-12-28T13:37:26+01:00</sidstOpdateret>
</beliggenhedsadresse>
<beliggenhedsadresse>
<landekode>DK</landekode>
<fritekst />
<vejkode>1142</vejkode>
<kommune>
<kommuneKode>615</kommuneKode>
<kommuneNavn>HORSENS</kommuneNavn>
<periode>
<gyldigFra>2007-01-01</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2006-11-13T00:00:00+01:00</sidstOpdateret>
</kommune>
<husnummerFra>23</husnummerFra>
<adresseId>0b29b248-c194-4363-b687-c774c93c06f5</adresseId>
<sidstValideret>2017-05-12T11:06:28.712+02:00</sidstValideret>
<husnummerTil />
<bogstavFra />
<bogstavTil />
<etage />
<sidedoer />
<conavn />
<postboks />
<vejnavn>Bygholm Søpark</vejnavn>
<bynavn />
<postnummer>8700</postnummer>
<postdistrikt>Horsens</postdistrikt>
<periode>
<gyldigFra>2011-06-01</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2013-06-26T19:32:22+02:00</sidstOpdateret>
</beliggenhedsadresse>
<telefonNummer>
<kontaktoplysning>96755200</kontaktoplysning>
<hemmelig>false</hemmelig>
<periode>
<gyldigFra>2002-06-21</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2002-06-25T19:34:17+02:00</sidstOpdateret>
</telefonNummer>
<telefaxNummer>
<kontaktoplysning>96755201</kontaktoplysning>
<hemmelig>false</hemmelig>
<periode>
<gyldigFra>2002-06-21</gyldigFra>
<gyldigTil>2004-12-09</gyldigTil>
</periode>
<sidstOpdateret>2002-06-25T19:34:17+02:00</sidstOpdateret>
</telefaxNummer>
<elektroniskPost>
<kontaktoplysning>velfac@velfac.dk</kontaktoplysning>
<hemmelig>false</hemmelig>
<periode>
<gyldigFra>2000-01-23</gyldigFra>
<gyldigTil>2000-11-01</gyldigTil>
</periode>
<sidstOpdateret>2000-04-01T14:51:22+02:00</sidstOpdateret>
</elektroniskPost>
<elektroniskPost>
<kontaktoplysning>velfac@velfac.dk</kontaktoplysning>
<hemmelig>false</hemmelig>
<periode>
<gyldigFra>2002-01-23</gyldigFra>
<gyldigTil>2004-12-09</gyldigTil>
</periode>
<sidstOpdateret>2002-01-25T19:31:18+01:00</sidstOpdateret>
</elektroniskPost>
<obligatoriskEmail>
<kontaktoplysning>salg@velfac.dk</kontaktoplysning>
<hemmelig>true</hemmelig>
<periode>
<gyldigFra>2015-11-30</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2015-11-30T15:45:31+01:00</sidstOpdateret>
</obligatoriskEmail>
<livsforloeb>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>1999-10-16T19:50:10+02:00</sidstOpdateret>
</livsforloeb>
<hovedbranche>
<branchekode>203020</branchekode>
<branchetekst>Fremstilling af dele af træ til bygninger</branchetekst>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>2007-12-31</gyldigTil>
</periode>
<sidstOpdateret>2013-11-22T22:19:29+01:00</sidstOpdateret>
</hovedbranche>
<hovedbranche>
<branchekode>162300</branchekode>
<branchetekst>Fremstilling af bygningstømmer og snedkeriartikler i øvrigt</branchetekst>
<periode>
<gyldigFra>2008-01-01</gyldigFra>
<gyldigTil>2012-12-31</gyldigTil>
</periode>
<sidstOpdateret>2015-11-23T13:46:28+01:00</sidstOpdateret>
</hovedbranche>
<hovedbranche>
<branchekode>467310</branchekode>
<branchetekst>Engroshandel med træ, trælast og byggematerialer</branchetekst>
<periode>
<gyldigFra>2013-01-01</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2015-11-23T13:46:28+01:00</sidstOpdateret>
</hovedbranche>
<bibranche1>
<branchekode>515310</branchekode>
<branchetekst>Engroshandel med træ, trælast og byggematerialer</branchetekst>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil>2006-12-31</gyldigTil>
</periode>
<sidstOpdateret>2013-11-22T22:19:29+01:00</sidstOpdateret>
</bibranche1>
<bibranche1>
<branchekode>682040</branchekode>
<branchetekst>Udlejning af erhvervsejendomme</branchetekst>
<periode>
<gyldigFra>2014-01-01</gyldigFra>
<gyldigTil>2014-01-01</gyldigTil>
</periode>
<sidstOpdateret>2015-11-20T15:14:41+01:00</sidstOpdateret>
</bibranche1>
<virksomhedsstatus>
<status>NORMAL</status>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2015-02-10T00:00:00+01:00</sidstOpdateret>
</virksomhedsstatus>
<virksomhedsform>
<virksomhedsformkode>60</virksomhedsformkode>
<kortBeskrivelse>A/S</kortBeskrivelse>
<langBeskrivelse>Aktieselskab</langBeskrivelse>
<ansvarligDataleverandoer>E&S</ansvarligDataleverandoer>
<periode>
<gyldigFra>1969-09-29</gyldigFra>
<gyldigTil />
</periode>
<sidstOpdateret>2013-11-22T21:57:52+01:00</sidstOpdateret>
</virksomhedsform>
答案 0 :(得分:0)
更多LINQish方式,改变了对空白的检查。 这个人能做你想做的吗?
xd.Descendants("hits")
.Elements("_source")
.Descendants("periode")
.Elements("gyldigTil")
.Where(gt => gt.Nodes().Any())
.Select(gt => gt.Parent.Parent)
.Remove()