修改XML元素的值 [英] modify the value of an XML element

查看:92
本文介绍了修改XML元素的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,


我在c#编码,我有一个XML文件(Xdocument)myFile:

<输出> 
  &NBSP;<输出>
  &NBSP; &NBSP;< ID> 1< / ID>
  &NBSP; &NBSP;<名称>杰克< / name>
  &NBSP; &NBSP;<工作> "导演" < / Job>
   < / Output>
  <输出>
  &NBSP; &NBSP;< ID> 2< / ID>
  &NBSP; &NBSP;<名称>乔治< / name>
  &NBSP; &NBSP;<工作> "医生" < / Job>
   < / Output>
  &NBSP;<输出>
  &NBSP; &NBSP;< ID> 3< / ID>
  &NBSP; &NBSP;<名称> philipe< / name>
  &NBSP; &NBSP;<工作> "教授" < / Job>
   < / Output>
  &NBSP;<输出>
  &NBSP; &NBSP; &NBSP;   .........
< /输出>


我想删除我搜索过代码的作业元素的引号(""),但我发现的代码是将一个值替换为另一个值?我去了我的xml文件将是 


< Output> 
  &NBSP;<输出>
  &NBSP; &NBSP;< ID> 1< / ID>
  &NBSP; &NBSP;<名称>杰克< / name>
  &NBSP; &NBSP;<工作>导演< / Job>
   < / Output>
  <输出>
  &NBSP; &NBSP;< ID> 2< / ID>
  &NBSP; &NBSP;<名称>乔治< / name>
  &NBSP; &NBSP;<工作>医生< / Job>
   < / Output>
  &NBSP;<输出>
  &NBSP; &NBSP;< ID> 3< / ID>
  &NBSP; &NBSP;<名称> philipe< / name>
  &NBSP; &NBSP;<工作>教授< /工作>
   < / Output>
  &NBSP;<输出>
  &NBSP; &NBSP; &NBSP;   .........
< /输出>


我的代码:


 var xmlFile = new XDocument.load(path); 
var output = xmlFile 
.Element(" Output")
。元素(" Output")
.where(e => e.Element(" Id")。value ==" 1")
。单();
Output.Element(" Job")。Value =" director" ;;
xmlfile.Save(路径); 



//我必须为所有节点重复此代码

解决方案

试试这个:

 xmlFile 
.Descendants(" Job")
.ToList()
.ForEach(j => j.Value = j.Value.Trim('','"'));


Hello,

i code in c# and i I have an XML file (Xdocument) myFile:

<Output>
   <Output>
     <ID> 1 </ ID>
     <Name> jack </ name>
     <Job> "director" </ Job>
   </ Output>
  <Output>
     <ID> 2 </ ID>
     <Name> george </ name>
     <Job> "doctor" </ Job>
   </ Output>
   <Output>
     <ID> 3 </ ID>
     <Name> philipe </ name>
     <Job> "prof" </ Job>
   </ Output>
   <Output>
         .........
</ Output>

I want to delete the quotes("")of the element Job I have searched for code but the code I found is to replace a value of one attrebut with another? that i went my xml file will be 

<Output>
   <Output>
     <ID> 1 </ ID>
     <Name> jack </ name>
     <Job> director</ Job>
   </ Output>
  <Output>
     <ID> 2 </ ID>
     <Name> george </ name>
     <Job> doctor </ Job>
   </ Output>
   <Output>
     <ID> 3 </ ID>
     <Name> philipe </ name>
     <Job> prof</ Job>
   </ Output>
   <Output>
         .........
</ Output>

my code :

var xmlFile=new XDocument.load(path);
var output = xmlFile 
.Element("Output")
.Elements("Output")
.where(e=>e.Element("Id").value =="1")
.Single();
Output.Element("Job").Value="director";
xmlfile.Save(path); 

// and I have to repeat this code for all the nodes

解决方案

Try this:

xmlFile
   .Descendants( "Job" )
   .ToList()
   .ForEach( j => j.Value = j.Value.Trim( ' ', '"' ) );


这篇关于修改XML元素的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆