Pregunta

Im escribir cosas en un archivo XML usando VB .net's XmlTextWriter

El código para iniciar el xmlwriter es:

 Dim XMLobj As Xml.XmlTextWriter
 Dim enc As System.Text.Encoding
 enc = System.Text.Encoding.GetEncoding("ISO-8859-1")
 XMLobj = New Xml.XmlTextWriter("C:\filename.xml", enc)

¿Es posible añadir PARAM = "on" a la primera línea del archivo XML? Por lo que se verá así:

<?xml version="1.0" encoding="ISO-8859-1" param="on"?>

La siguiente pregunta podría ser un estúpido :) pero simplemente no puede resolverlo. Trato de añadir un tipo de documento en el archivo XML como:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Sin embargo cuando intento instalar esto consigo algunos errores.

XMLobj.WriteDocType("Test", null, "test/my.dtd", null)

El error que consigo es:

'null' is not declared. 'Null' constant is no longer supported; use 'System.DBNull' instead.

Sin embargo cuando intento de sustituir nula con System.DBNull me sale el error:

'DBNull' is a type in 'System' and cannot be used as an expression.

El resultado de la DOCTYPE def debe ser como:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Gracias de antemano por su ayuda!

¿Fue útil?

Solución

Pregunta 1:

Lo que parece que está tratando de hacer es añadir una " el procesamiento de la instrucción " a su archivo XML. Una instrucción de procesamiento (PI) es una etiqueta que la información codifica específica de la aplicación, a partir de "<?" y terminando con "?>".

Para añadir un IP a su archivo XML, es necesario utilizar el método WriteProcessingInstruction de la clase XmlTextWriter. Hay dos partes a cada PI, un objetivo y un valor, y estos son los dos parámetros aceptados por el método WriteProcessingInstruction.

Así que, en su caso, podría escribir el código siguiente para agregar la instrucción de procesamiento:

XMLobj.WriteProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1"" param=""on""")

que produciría:

<?xml version="1.0" encoding="ISO-8859-1" param="on"?>


Pregunta 2:

El VB.NET equivalente de C # 's null es Nothing . Esta palabra clave o bien especifica el valor predeterminado de un tipo de valor, o un valor nulo de un tipo de referencia.

No use System.DBNull a no ser que se está tratando con bases de datos. DBNull representa una variante no inicializada o columna de base de datos inexistente. Es no equivalente a Nothing o null. Estoy de acuerdo en que el primer mensaje de error que se obtiene es confuso en el mejor.

Así que, en cambio, la línea para escribir el tipo de documento en el archivo XML debe ser:

XMLobj.WriteDocType("Test",  Nothing, "test/my.dtd", Nothing)

que producirá:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Otros consejos

No tengo respuesta acerca de "nulo" - se llama "nada" en VB.net

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top