Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Añadir un nodo XML, COMO?

3,099 views
Skip to first unread message

Edison Abarca Tapia

unread,
May 7, 2007, 5:57:42 AM5/7/07
to
Hola, tengo el siguiente documento XML:

<profiles>

<user name="rad1">

<condiciones-busqueda name="a">

<Paciente>ANGEL</Paciente>

<Prueba>PRUEBITA DEMO</Prueba>

<Modalidad>c</Modalidad>

<RangoDias>2</RangoDias>

</condiciones-busqueda>

</user>

<user name="Edison">

<condiciones-busqueda name="CT NAME">

<Paciente>

</Paciente>

<Prueba>TORAX</Prueba>

<Modalidad>CT</Modalidad>

<RangoDias>10</RangoDias>

</condiciones-busqueda>

</user>

</profiles>

Ahora bien, lo que necesito es añadir dentro del nodo <user
name="Edison"> otras condiciones, es decir deberia quedar asi:

<user name="Edison">

<condiciones-busqueda name="CT NAME">

<Paciente>

</Paciente>

<Prueba>TORAX</Prueba>

<Modalidad>CT</Modalidad>

<RangoDias>10</RangoDias>

</condiciones-busqueda>

<condiciones-busqueda name="CR NAME">

<Paciente>

</Paciente>

<Prueba>CRANEO</Prueba>

<Modalidad>CR</Modalidad>

<RangoDias>10</RangoDias>

</condiciones-busqueda>

</user>

Como puedo hacerlo con C#?...Por favor necesito de su ayuda, gracias por su
valiosa colaboración.


Jose Escrich

unread,
May 7, 2007, 9:50:32 AM5/7/07
to
Debes crear un XmlDocument e invocar al metodo LoadXml y pasarle el string
que tengas, alli tendras toda una api para el manejo del documento entre
ellos la creación de un nodo.

Intenta utilizar el XmlDocument y si te trabas con algo, avisas.!

--
José Escrich
http://latincoder.com


"Edison Abarca Tapia" <eab...@medinet-igd.com> wrote in message
news:Oz$Y94IkH...@TK2MSFTNGP06.phx.gbl...

Octavio Hernandez

unread,
May 7, 2007, 11:32:27 AM5/7/07
to
Hola,

Como dice José, con XmlDocument es fácil resolverlo.

Tienes muchos tutoriales aquí: http://es.gotdotnet.com/Quickstart.

Slds - Octavio

"Edison Abarca Tapia" <eab...@medinet-igd.com> escribió en el mensaje
news:Oz$Y94IkH...@TK2MSFTNGP06.phx.gbl...

egcito

unread,
May 8, 2007, 12:56:00 AM5/8/07
to

Te paso un ejemplo para que veas algo de código:


Antepone using System.Xml en tu ejemplo.

XmlDocument document = new XmlDocument();
// suponiendo que tu xml se almacena en profiles.xml
document.Load("profiles.xml");
// buscar el nodo user con atributo name='Edison'
XmlNode user = document.SelectSingleNode("/profiles/user[@name='Edison']");
if(user != null)
{
// buscar el nodo condiciones-busqueda con atributo name='CR NAME'
if(user.SelectSingleNode("condiciones-busqueda[@name='CR NAME']") == null)
{
XmlNode cb = XmlHelper.AddNode(document, user, "condiciones-busqueda");
XmlHelper.AddAttribute(document, cb, "name", "CR NAME");
XmlHelper.AddNode(document, cb, "Paciente");
XmlHelper.AddNode(document, cb, "Prueba", "CRANEO");
XmlHelper.AddNode(document, cb, "Modalidad", "CR");
XmlHelper.AddNode(document, cb, "RangoDias", "10");
MessageBox.Show(document.OuterXml);
document.Save("profiles.xml");
}
else
MessageBox.Show("Nodo [condiciones-busqueda] con atributo [name='CR NAME']
existente.");
}
else
MessageBox.Show("Nodo [user] con atributo [name='Edison'] inexistente.");

Create una clase XmlHelper.cs con estos métodos para que te sea más fácil
agregar los nodos y atributos. Antepone using System.Xml en la clase.


public static XmlNode AddNode(XmlDocument document, XmlNode parent, string
name, string value)
{
XmlNode child = document.CreateElement(name);
if(value != null)
child.InnerText = value;
parent.AppendChild(child);
return child;
}

public static XmlNode AddNode(XmlDocument document, XmlNode parent, string
name)
{
return AddNode(document, parent, name, null);
}

public static XmlAttribute AddAttribute(XmlDocument document, XmlNode node,
string name, string value)
{
XmlAttribute attr = document.CreateAttribute(name);
attr.Value = value;
node.Attributes.Append(attr);
return attr;
}

Salu2!

0 new messages