-1

以下に示すように、XMLファイルがあります。このXMLファイルを使用して別のXMLファイルを作成したいのですが、新しいXMLファイルには、値を持つタグしか含めることができません。たとえば、以下のXMLファイルには、市と州を持たない従業員Samがいるため、新しいXMLファイルにこれらの空のタグを含めることはできません。私はLINQtoXMLを初めて使用しますが、友人はLINQtoXMLを使用してそれを実現できると言っています。どんな助けでも大歓迎です。

ありがとう。

   <?xml version="1.0" encoding="utf-8" ?>
        <Employees>
         <Employee>
<EmpId>1</EmpId>
<Name>Sam</Name>   
<Sex>Male</Sex>
<Phone Type="Home">423-555-0124</Phone>
<Phone Type="Work">424-555-0545</Phone>
          <Address>
  <Street>7A Cox Street</Street>
  <City></City>
  <State></State>
  <Zip>95220</Zip>
  <Country>USA</Country>
</Address>
      </Employee>
             <Employee>
<EmpId>2</EmpId>
<Name>Lucy</Name>
<Sex>Female</Sex>
<Phone Type="Home">143-555-0763</Phone>
<Phone Type="Work">434-555-0567</Phone>
<Address>
  <Street>Jess Bay</Street>
  <City>Alta</City>
  <State>CA</State>
  <Zip>95701</Zip>
  <Country>USA</Country>
</Address>
  </Employee>
       <Employee>
<EmpId>3</EmpId>
<Name>Kate</Name>
<Sex>Female</Sex>
<Phone Type="Home">166-555-0231</Phone>
<Phone Type="Work">233-555-0442</Phone>
<Address>
  <Street>23 Boxen Street</Street>
  <City>Milford</City>
  <State>CA</State>
  <Zip>96121</Zip>
  <Country>USA</Country>
</Address>
     </Employee>
           <Employee>
<EmpId>4</EmpId>
<Name>Chris</Name>
<Sex>Male</Sex>
<Phone Type="Home">564-555-0122</Phone>
<Phone Type="Work">442-555-0154</Phone>
<Address>
  <Street>124 Kutbay</Street>
  <City>Montara</City>
  <State>CA</State>
  <Zip>94037</Zip>
  <Country>USA</Country>
</Address>

4

1 に答える 1

1
XDocument xdoc = XDocument.Load(path_to_xml);
xdoc.Descendants("Employee")
    .Where(e => e.Descendants().Any(d => String.IsNullOrEmpty(d.Value)))
    .Remove();
xdoc.Save(path_to_xml);
于 2013-01-15T16:46:56.237 に答える