Domanda

Im roba scritta in un file XML utilizzando VB .net's XmlTextWriter

Il codice per avviare il XmlWriter è:

 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)

E 'possibile aggiungere param = "on" alla prima riga del file XML? In modo che sarà simile a:

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

La domanda successiva potrebbe essere uno stupido :), ma non riesco proprio a capirlo. Io cerco di aggiungere un doctype al file XML come:

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

Tuttavia quando provo ad installare questo ricevo alcuni errori.

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

L'errore che ottengo è:

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

Tuttavia quando provo a sostituire nulla con System.DBNull ottengo l'errore:

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

Il risultato del doctype def dovrebbe essere come:

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

Grazie in anticipo per il vostro aiuto!

È stato utile?

Soluzione

Domanda 1:

Quello che sembra che stai cercando di fare è aggiungere un " l'elaborazione di istruzione " al file XML. Un'istruzione di elaborazione (PI) è un tag che codifica le informazioni applicazioni specifiche, a cominciare da "<?" e termina con "?>".

Per aggiungere un PI al file XML, è necessario utilizzare il metodo WriteProcessingInstruction della classe XmlTextWriter. Ci sono due parti di ogni PI, un obiettivo e un valore, e questi sono i due parametri accettati dal metodo WriteProcessingInstruction.

Quindi, nel tuo caso, si avrebbe scritto il seguente codice per aggiungere l'istruzione di elaborazione:

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

che produrrebbe:

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


Domanda 2:

Il VB.NET equivalente di C # 's null è Nothing . Questa parola chiave specifica sia il valore predefinito di un tipo di valore, o un valore nullo di un tipo di riferimento.

Non dovrebbe usare System.DBNull a meno che non hai a che fare con i database. DBNull rappresenta una variante non inizializzata o colonna di database inesistente. Si tratta di non equivalente a Nothing o null. Sono d'accordo che il primo messaggio di errore che si ottiene è confusa al massimo.

Così, invece, la linea per scrivere il DocType al file XML dovrebbe essere:

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

che produrrà:

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

Altri suggerimenti

Non ho risposta su "null" - si chiama "Nothing" in VB.net

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top