xml - reales - libro de android studio en español pdf
Cómo analizar un archivo XML y escribir datos y luego guardarlo (1)
Aquí hay un código que puede ayudarlo a comenzar
Dim doc As DOMDocument
Set doc = New DOMDocument
doc.Load "C:/x.xml"
Dim Variables As IXMLDOMNodeList
Dim variable As IXMLDOMNode
Set Variables = doc.SelectNodes("/Environment/Variable")
For Each variable In Variables
Debug.Print variable.SelectNodes("Caption").Item(0).Text
Debug.Print variable.SelectNodes("Type").Item(0).Text
Next
Para que funcione, seleccione Herramientas - Referencias y seleccione Microsoft XML v6.0. Hay muchas maneras de resolver esto, pero XPath (el lenguaje utilizado en SelectNodes) es muy bueno para saber en casos como este.
Estoy trabajando en algo como lo siguiente:
- Una hoja de Excel con algunas celdas donde se le pide al usuario final que ingrese los valores requeridos; hecho
- Código que lee los valores ingresados en estas celdas por los usuarios finales;
- Cargue un archivo XML; hecho
- Analizar y luego escribir los valores recuperados de las celdas de Excel en un archivo XML (siguiendo una regla) y luego guardarlo; Estoy atrapado aquí!
- Inicie mi aplicación (otra secuencia de comandos utilizará los valores del archivo XML más adelante).
Simplificaré tanto como sea posible:
El archivo de Excel será como el siguiente ejemplo ...
CellA CellB
1 T1 V1
2 T2 V2
3 T3 V3
4 T4 V4
5 T5 V5
6 T6 V6
"T" se refiere al título. El usuario final ingresará los valores V1, V2, ... V6
El archivo XML está estructurado así:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Environment>
<Variable>
<Name></Name>
<Caption>T1</Caption>
<Type>TEXT</Type>
<Value>V1</Value>
<Description></Description>
</Variable>
<Variable>
<Name></Name>
<Caption>T2</Caption>
<Type>TEXT</Type>
<Value>V2</Value>
<Description></Description>
</Variable>
<Variable>
<Name></Name>
<Caption>T3</Caption>
<Type>TEXT</Type>
<Value>V3</Value>
<Description></Description>
</Variable> <Variable>
<Name></Name>
<Caption>T4</Caption>
<Type>TEXT</Type>
<Value>V4</Value>
<Description></Description>
</Variable> <Variable>
<Name></Name>
<Caption>T5</Caption>
<Type>TEXT</Type>
<Value>V5</Value>
<Description></Description>
</Variable>
</Variable> <Variable>
<Name></Name>
<Caption>T6</Caption>
<Type>TEXT</Type>
<Value>V6</Value>
<Description></Description>
</Variable>
</Environment>
Como puede ver, necesito analizar este archivo e ingresar valores (V1 .... V6) con referencia a cada uno.
Debajo está mi código de VBA hasta la línea donde estoy atrapado:
''Option Explicit
Private Sub RunTest_Click()
Dim envFrmwrkPath As String
Dim ApplicationName As String
Dim TestIterationName, ServerIp, Login, Password, TraderLiteLogPath As String
Dim objfso, app, Eval As Object
Dim i, Msgarea`enter code here`
Dim EnvVarXML As MSXML2.DOMDocument60
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''these are added when trying to find a way to parse the xml --- you can change them
Dim Variable As MSXML2.IXMLDOMNode
''Dim oAttributes As MSXML.IXMLDOMNamedNodeMap
Dim ORoot As MSXML2.IXMLDOMNode
Dim objUIElement As MSXML2.IXMLDOMElement
Dim OChildren As MSXML2.IXMLDOMNodeList
Dim OChild As MSXML2.IXMLDOMNode
Dim OVariable As MSXML2.IXMLDOMNode
Dim OAttributes As MSXML2.IXMLDOMNamedNodeMap
''Dim objUIElement As Object
Dim field As Object
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''load Env Variables from Excel
ApplicationName = ActiveSheet.Range("E4").Value
envFrmwrkPath = ActiveSheet.Range("E6").Value
TestIterationName = ActiveSheet.Range("E8").Value
ServerIp = ActiveSheet.Range("E10").Value
Login = ActiveSheet.Range("E12").Value
Password = ActiveSheet.Range("E14").Value
TraderLiteLogPath = ActiveSheet.Range("E16").Value
''load xml file
Set objParser = CreateObject("Microsoft.XMLDOM")
Set EnvVarXML = New MSXML2.DOMDocument60
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''test_load
''''''''''''''''''''''''''''''-----------------------------------------------------
''Set EnvVarXML = CreateObject("Microsoft.XMLDOM")
''Set EnvVarXML = New MSXML2.DOMDocument60
''If EnvVarXML.Load(envFrmwrkPath & "/Environment/EnvVar.xml") Then
'' for debug only
''MsgBox "file loaded correctly", vbOKOnly
'' for debug only
''Else
'' for debug only
''MsgBox "file not loaded", vbcrtical
'' for debug only
''End If
''''''''''''''''''''''''''''''-----------------------------------------------------
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''load xml file
EnvVarXML.Load (envFrmwrkPath & "/Environment/EnvVar.xml")
''parse file and change values
''''''the following may have no sense for an experiment one of you
Set ORoot = EnvVarXML.DocumentElement
For Each OVariable In ORoot.ChildNodes
Set OAttributes = OVariable.Attributes
Set OChildren = OVariable.ChildNodes
''''''deleted many lines as found no way ''''''''''''''
Set EnvVarXML = Nothing
Next
EnvVarXML.Save (envFrmwrkPath & "/Environment/EnvVar.xml")