【问题标题】:Parsing xml with xmlns in visual basic在 Visual Basic 中使用 xmlns 解析 xml
【发布时间】:2016-10-13 10:02:43
【问题描述】:

我正在尝试解析这个 xml 字符串,但是当它具有属性“xmlns”时它返回 null。当我删除属性或重命名它时,它工作正常。 我需要读取从 Web 请求中获取的少量 xml,但似乎大多数 xml 都使用此属性进行格式化。我试图将响应放在一个字符串中,但仍然返回 null。

我也试过了:

Dim df As XNamespace =xelement.Root.Namespace

但获取 root 不是 XElement 的成员。

Dim filename As String ="<Age xmlns=""http://newage/age/result"">15</Age>" 

 label2.Content = XMLparse("Age", filename)


Function XMLparse(ByVal strTAG As String, ByVal strXML As String) As String

    Dim xelement As XElement = XElement.Parse(strXML)
    Dim val As String     
    Dim df As XNamespace = "abc"
    val = ""
    Try
        Dim q = From el In xelement.DescendantsAndSelf(strTAG)
                Select el.Value

        For Each em In q
            val = val + "" + em.ToString() + ","
        Next em
        val = val.TrimEnd(CChar(","))
    Catch ex As Exception
        Return "Error: Can't search for tag in XML"
    End Try
    Return val
End Function

【问题讨论】:

    标签: vb.net linq namespaces


    【解决方案1】:
    Function XMLparse(ByVal strTAG As String, ByVal strXML As String) As String
        Dim xelement As XElement = XElement.Parse(strXML)
        Dim val As String     
        Dim df As XNamespace.Get("http://newage/age/result")
    
        val = ""
        Try
            Dim q = From el In xelement.DescendantsAndSelf(df + strTAG)
                Select el.Value
    
            For Each em In q
                val = val + "" + em.ToString() + ","
            Next em
            val = val.TrimEnd(CChar(","))
        Catch ex As Exception
            Return "Error: Can't search for tag in XML"
        End Try
        Return val
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多