簡體   English   中英

使用VB.NET更新XML標簽值

[英]Updating XML Tag Values using VB.NET

我需要使用VB.NET代碼在XML下面進行更新。 標簽已經添加,我只需要更新它們的值即可。

<?xml version="1.0" encoding="UTF-8"?>
    <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <LANGUAGE>ENG</LANGUAGE>
        <STATEMENT/>
        <STATEMENT2/>
        <STATEMENT3/>
        <SIZE/>
        <LANGUAGE>FRA</LANGUAGE>
        <STATEMENT/>
        <STATEMENT2/>
        <STATEMENT3/>
        <SIZE/>
        <LANGUAGE>SPA</LANGUAGE>
        <STATEMENT/>
        <STATEMENT2/>
        <STATEMENT3/>
        <SIZE/>
        <ATTRIBUTE>A</ATTRIBUTE>
        <CONTAINMENT/>
        <ATTRIBUTE>B</ATTRIBUTE>
        <CONTAINMENT/>
    </test>

此XML中沒有父標記。

對於ENG,我需要更新Statement,Statement2和Statement3。

SPA和FRA的情況相同。 但是進入這些數據庫的數據將有所不同。 這意味着SPA和FRA的聲明將攜帶不同的數據。

我擁有所有相關數據,這些數據在VB.NET代碼的DataTable中獲取,但是我無法區分SPA的STATEMENT標簽和FRA。

有什么方法可以使用不同的數據更新與SPA相關的STATEMENT標簽,以及使用不同的數據更新與FRA相關的STATEMENT標簽?

我已經嘗試過GetElementsByTagName方法,但是它使用相同的數據更新所有標簽,並保留最后一個條目。

如果您有任何解決方案,請告訴我。

試試下面的代碼

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim XDocument1 As XDocument =
        <?xml version="1.0" encoding="UTF-8"?>
        <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <LANGUAGE>ENG</LANGUAGE>
            <STATEMENT/>
            <STATEMENT2/>
            <STATEMENT3/>
            <SIZE/>
            <LANGUAGE>FRA</LANGUAGE>
            <STATEMENT/>
            <STATEMENT2/>
            <STATEMENT3/>
            <SIZE/>
            <LANGUAGE>SPA</LANGUAGE>
            <STATEMENT/>
            <STATEMENT2/>
            <STATEMENT3/>
            <SIZE/>
            <ATTRIBUTE>A</ATTRIBUTE>
            <CONTAINMENT/>
            <ATTRIBUTE>B</ATTRIBUTE>
            <CONTAINMENT/>
        </test>

    Dim i As Integer

    For i = 0 To XDocument1.Descendants("LANGUAGE").Count - 1
        Dim XLanguage1 As XElement = XDocument1.Descendants("LANGUAGE").ElementAt(i)
        Dim XStatement1 As XElement = XDocument1.Descendants("STATEMENT").ElementAt(i)
        Dim XStatement2 As XElement = XDocument1.Descendants("STATEMENT2").ElementAt(i)
        Dim XStatement3 As XElement = XDocument1.Descendants("STATEMENT3").ElementAt(i)

        Select Case XLanguage1.Value
            Case "ENG"
                XStatement1.Value = "Statement1 for English"
                XStatement2.Value = "Statement2 for English"
                XStatement3.Value = "Statement3 for English"
            Case "FRA"
                XStatement1.Value = "Statement1 for French"
                XStatement2.Value = "Statement2 for French"
                XStatement3.Value = "Statement3 for French"
            Case "SPA"
                XStatement1.Value = "Statement1 for Spanish"
                XStatement2.Value = "Statement2 for Spanish"
                XStatement3.Value = "Statement3 for Spanish"
        End Select
    Next

    MsgBox(XDocument1.ToString)
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM