首页 新闻 搜索 专区 学院

求用linq to xml 修改子节点的名称

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-15 14:51

用linq to xml 先查找到所有tr下的所有子节点,并把子节点的名称全部改为td

比方说:tr下的子节点<F7></F7>,把F7改为td~~~求代码!!

一丝痕迹的主页 一丝痕迹 | 初学一级 | 园豆:158
提问于:2012-11-15 13:37
< >
分享
最佳答案
1
            var xe = XElement.Load("table.xml");
            var query = xe.Descendants("tr");
            foreach (var item in query)
            {
                var querysub = item.DescendantNodes();

                foreach (var itemsub in querysub)
                {
                    ((XElement)itemsub).Name = "td";
                }
            }
收获园豆:20
Qlin | 老鸟四级 |园豆:2403 | 2012-11-15 13:58

一丝痕迹 | 园豆:158 (初学一级) | 2012-11-15 14:14

@一丝痕迹: 

把你的 xml文件贴出来,我试试

Qlin | 园豆:2403 (老鸟四级) | 2012-11-15 14:25

@Qlin: 

  <?xml version="1.0" encoding="utf-8" ?> 
- <table>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>1.分组标志</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  </tr>
- <tr>
  <F7>表 号:农市(农研户)1表</F7> 
  </tr>
- <tr>
  <F7>制表机关:农业部</F7> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>省(自治区、直辖市)地(市、州、盟)县(区、市、旗)</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F7>批准机关:国家统计局</F7> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>行政区划代码:□□_□□_□□</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F7>批准文号:国统制【2010】20号</F7> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>综合机关名称:</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F7>有 效 期:两年</F7> 
  </tr>
- <tr>
  <F4>单位</F4> 
  <F5>代码</F5> 
  <F6>数值</F6> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>1、省码</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>SM</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>2、村码</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>CM</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>3、组码</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>ZM</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>4、户码</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>HM</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>5、家庭类型</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-5</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>6、家庭收入主要来源</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-6</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>7、家庭经营主业</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-7</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>8、是否国家干部职工户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-8</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>9、是否乡村干部户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-9</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>10、是否党员户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-10</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>11、是否军烈属户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-11</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>12、是否五保户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-12</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>13、是否上次调查户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-13</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>14、是否少数民族户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-14</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>15、是否信教户</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-15</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>16、家庭常住人口数</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-16</F5> 
  </tr>
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>17、家庭劳动力数</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  <F5>NH1A-17</F5> 
  </tr>
  <tr /> 
- <tr>
  <_x0028_一_xFF09_分组标志及家庭成员构成情况>单位负责人: 统计负责人: 填表人: 报出日期:2012年9月20日</_x0028_一_xFF09_分组标志及家庭成员构成情况> 
  </tr>
  </table>

文件名:1.xml

一丝痕迹 | 园豆:158 (初学一级) | 2012-11-15 14:36

@一丝痕迹: 

item.DescendantNodes(); //的确会取 文本,是所有的子元素,不只是直接的子元素。

item.Elements(); //直接的子元素,里面还有子元素将取不到,可以用这个。

也可以价格判断

            foreach (var item in query)
            {
                var querysub = item.DescendantNodes();

                foreach (var itemsub in querysub)
                {
                    if (itemsub is XElement)
                        ((XElement)itemsub).Name = "td";
                }
            }
Qlin | 园豆:2403 (老鸟四级) | 2012-11-15 14:46

@Qlin: 谢谢~~测试成功了~~

一丝痕迹 | 园豆:158 (初学一级) | 2012-11-15 14:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册