só desculpa pela formatação do código eu o template do blogger e o FireFox não entramos em um acordo. logo vou corrigir.
1: //usando DataSet
2: public static bool alterarCampo(string path, int id, Parametro parametro)
   3:          {4: bool resultado = false;
5: DataSet dataSet = new DataSet();
6:
7: try
   8:              {   9:                  dataSet.ReadXml(path);10:
11: dataSet.Tables[0].DefaultView.RowFilter = "ID = " + id.ToString();
  12:                  dataSet.Tables[0].DefaultView[0][parametro.Campo] = parametro.Valor;  13:                  dataSet.Tables[0].WriteXml(path);14:
15: resultado = true;
  16:              }17: catch (Exception)
  18:              {19:
20: resultado = false;
  21:              }  22:              23:
24: dataSet = null;
25: return resultado;
  26:          }27:
28: //Usando XPath
29: public static bool alterarCampo(string path, int id, Parametro parametro)
  30:          {31: bool resultado = false;
32: try
  33:              {34: StreamReader stream = new StreamReader(File.Open(path, FileMode.Open));
35: XmlDocument doc = new XmlDocument();
36:
37: string xPathStr = String.Format("/CATALOGO/LIVRO[ID = '{0}']", iclipping);
  38:                  doc.LoadXml(stream.ReadToEnd());  39:                  stream.Close();40: stream = null;
41:
  42:                  XPathNavigator navigator = doc.CreateNavigator().SelectSingleNode(xPathStr);  43:                  XPathNavigator nCampo = navigator.SelectSingleNode(parametro.Campo);44:
45: //O elemento nao existe
46: if (nCampo == null)
  47:                  {48: navigator.AppendChild(String.Format("<{0}>{1}</{0}>", parametro.Campo, parametro.Valor));
  49:                  }50: else //logo existe
  51:                  {  52:                      nCampo.SetValue(parametro.Valor);  53:                  }54:
  55:                  FileStream fstream = File.Open(path, FileMode.Open);  56:                  doc.Save(fstream);  57:                  fstream.Close();58: resultado = true;
  59:              }60: catch (Exception)
  61:              {62: resultado = false;
63:
  64:              }65:
66: return resultado;
  67:          }| ModificarXML | alterarCampo(string path, int iclipping, Parametro parametro) | BOX71 | 22/01/09 11:26 | 22/01/09 11:26 | 00:00:00.3165278 | Xpath | 
| ModificarXML | alterarCampo(string path, int iclipping, Parametro parametro) | BOX71 | 22/01/09 11:50 | 22/01/09 11:50 | 00:00:01.2892166 | DataSet | 
Maquina : Intel 2140 2x1.6GHz 2GB Ram
Sem comentários:
Enviar um comentário