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"; } }
@一丝痕迹:
把你的 xml文件贴出来,我试试
@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
@一丝痕迹:
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: 谢谢~~测试成功了~~