Что Хороший Пример состоит в том, чтобы Записать XML использование VB.net 2008

Я никогда не создавал бы анонимный подкласс в этой ситуации. Статические инициализаторы работают одинаково хорошо, если требуется сделать карту немодифицируемой, например:

private static final Map<Integer, String> MY_MAP;
static
{
    Map<Integer, String>tempMap = new HashMap<Integer, String>();
    tempMap.put(1, "one");
    tempMap.put(2, "two");
    MY_MAP = Collections.unmodifiableMap(tempMap);
}
5
задан Rowland Shaw 18 August 2009 в 19:38
поделиться

5 ответов

Простой подход:

' to create the XmlDocument... '
Dim xmlDoc As New Xml.XmlDocument

Dim fooElement As Xml.XmlElement = xmlDoc.CreateElement("foo")
xmlDoc.AppendChild(fooElement)

Dim n1Element As Xml.XmlElement = xmlDoc.CreateElement("n1")
For Each n1ChildName As String In New String() {"s1", "s2", "s3"}
    Dim childElement As Xml.XmlElement = xmlDoc.CreateElement(n1ChildName)
    n1Element.AppendChild(childElement)
Next

fooElement.AppendChild(n1Element)
fooElement.AppendChild(n1Element.CloneNode(deep:=True))

' to update the XmlDocument (simple example)... '
Dim s1Element As Xml.XmlElement = xmlDoc.SelectSingleNode("foo/n1/s1")
If Not s1Element Is Nothing Then s1Element.InnerText = "some value"
9
ответ дан 18 December 2019 в 13:17
поделиться

Использование LINQ-to-XML - отличный способ сделать это в VS2008. Вот несколько ключевых ссылок:

Вот сегмент кода VB.NET:

Dim contacts = _
    <Contacts>
        <Contact>
            <Name>Patrick Hines</Name>
            <Phone Type="Home">206-555-0144</Phone>
            <Phone Type="Work">425-555-0145</Phone>
            <Address>
                <Street1>123 Main St</Street1>
                <City>Mercer Island</City>
                <State>WA</State>
                <Postal>68042</Postal>
            </Address>
        </Contact>
    </Contacts>

LINQ-to-XML действительно прост в VB.NET, потому что он обрабатывает его как XML-литерал, который выполняет вызовы LINQ-to-XML за кулисами. Вы можете напрямую записать указанную выше переменную "contacts" в файл, используя ее метод записи.

5
ответ дан 18 December 2019 в 13:17
поделиться

Поскольку вы отметили свой вопрос тегом VS2008, я думаю, вы имеете в виду VB или C #.

вы можете попробовать linq to xml: здесь
или простой xmlDocument: здесь

удачи

0
ответ дан 18 December 2019 в 13:17
поделиться

Вы также можете изучить сериализацию XML, для которой вы можете использовать что-то вроде:

public class foo
{
    void bar()
    {
        System.IO.FileInfo fi = new System.IO.FileInfo("C:\foo.xml")
        System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer( typeof( n1 ) );
        xs.Serialize(fi.OpenWrite(),new n1()); 
    }
}

public class n1
{
    [System.Xml.Serialization.XmlElement()] public string s1 { get; set; }
    [System.Xml.Serialization.XmlElement()] public string s2 { get; set; }
    [System.Xml.Serialization.XmlElement()] public string s3 { get; set; }
}
0
ответ дан 18 December 2019 в 13:17
поделиться

Это может дать вам то, с чем можно работать ...

   Sub Main()

      Dim oXML As Xml.XmlDocument
      Dim oNodes As Xml.XmlNode
      Dim oNode As Xml.XmlNode
      Dim sFilename As String = "D:\Junk\foo.xml"

      oXML = New Xml.XmlDocument
      oXML.Load(sFilename)

      oNodes = oXML.DocumentElement

      oNode = oNodes.ChildNodes(0)
      oNode.Item("s1").InnerText = "Pink Floyd"
      oNode.Item("s2").InnerText = "Dark Side of the Moon"
      oNode.Item("s3").InnerText = "1973"

      oNode = oNodes.ChildNodes(1)
      oNode.Item("s1").InnerText = "Deep Purple"
      oNode.Item("s2").InnerText = "Stormbringer"
      oNode.Item("s3").InnerText = "1974"

      oXML.Save(sFilename)

   End Sub
0
ответ дан 18 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: