Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VB.NET2008编写XML的好例子是什么_Xml_Vb.net_Visual Studio 2008_Linq To Xml - Fatal编程技术网

使用VB.NET2008编写XML的好例子是什么

使用VB.NET2008编写XML的好例子是什么,xml,vb.net,visual-studio-2008,linq-to-xml,Xml,Vb.net,Visual Studio 2008,Linq To Xml,使用此示例,我将如何使用此示例更新XML文件: <foo> <n1> <s1></s1> <s2></s2> <s3></s3> </n1> <n1> <s1></s1> <s2></s2> <s3></s3&g

使用此示例,我将如何使用此示例更新XML文件:

<foo>
   <n1>
       <s1></s1>
       <s2></s2>
       <s3></s3>
   </n1>
   <n1>
       <s1></s1>
       <s2></s2>
       <s3></s3>
   </n1>
</foo>


我可以整天从中阅读,但就我的一生而言,我似乎无法将它写回那种格式。

在VS2008中使用LINQ to XML是一种很好的方法。以下是一些关键链接:

以下是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>
Dim联系人=_
帕特里克·海因斯
206-555-0144
425-555-0145
主街123号
美世岛
华盛顿州
68042

LINQtoXML在VB.NET中非常简单,因为它将其视为XML文本,在幕后执行LINQtoXML调用。您可以使用上面的“contacts”变量的write方法将其直接写入文件。

既然您用VS2008标记了您的问题,我想您是指VB或c

您可以尝试linq到xml:
或简单的XML文档:


祝您好运

您还可以研究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; }
}

直截了当的方法:

' 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"

这可能会给你一些工作

   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

谢谢你简单的回答。这是我用过的。