【问题标题】:API - xml response formattingAPI - xml 响应格式
【发布时间】:2015-11-27 11:07:13
【问题描述】:

您好,我正在创建一个 api 来获取 ID 和名称为 Xml 像这样
响应格式

  <posts>
  <post>
  <account_id> </account_id>
  <name> </name>
  </post>
  </posts>

你可以在下面找到我定义的模型

Partial Public Class PostsPost

    Private postField As Posts

    Public Property Post() As Posts
        Get
            Return Me.postField
        End Get
        Set
            Me.postField = Value
        End Set
    End Property
End Class


  Partial Public Class Posts



    Private account_idField As String

    Private nameField As String




    Public Property Account_id() As String
        Get
            Return Me.account_idField
        End Get
        Set
            Me.account_idField = Value
        End Set
    End Property


    Public Property Name() As String
        Get
            Return Me.nameField
        End Get
        Set
            Me.nameField = Value
        End Set
    End Property


 End Class

然后下面是我正在使用的源代码

    Try myConnection.ConnectionString = "Data Source = xxx.xxx.x.yy;port=1234;Database=test;User ID=test;Password=test123;"
            If myConnection.State = ConnectionState.Closed Then
                myConnection.Open()
            End If

            Dim reader As MySqlDataReader = Nothing
            Dim mysqlCmd As New MySqlCommand()
            mysqlCmd.CommandType = CommandType.Text
            mysqlCmd.CommandText = "Select account_id,name from xx where  account_id Like ?p1 and xylike ?p2 "
            mysqlCmd.Parameters.AddWithValue("?p1", xxx)
            mysqlCmd.Parameters.AddWithValue("?p2", yyy)
            mysqlCmd.Connection = myConnection
            reader = mysqlCmd.ExecuteReader()
            If reader.HasRows Then
                Dim smtSub As Posts = Nothing
                While reader.Read()
                    smtSub = New Posts()
                    smtSub.Post.Account_id = Convert.ToInt32(reader.GetValue(0))
                    smtSub.Post.Name = reader.GetValue(1).ToString()

                End While
                myConnection.Close()
  return smtSub

如果结束

响应没有&lt;post&gt;的问题,如下例所示

   <posts>
    <account_id> </account_id>
    <name> </name>
     </posts>

【问题讨论】:

  • 您能否检查一下您是否已正确发布:您的目标 XML 没有关闭 &lt;amount&gt; 标记; If reader.HasRows 缺少 End If;并且您返回smtSub,即使它在您的While 循环中重新初始化。谢谢
  • 我只是写错了;如果存在于 VS 项目中,则结束,但在这里我忘了把它 - 它只是返回 像这样的注释

标签: asp.net xml vb.net asp.net-web-api


【解决方案1】:

更改 sql 查询可能是您的解决方案。下面的查询在您的 xml 中添加一个 post 节点。 试试这个

 mysqlCmd.CommandText = "select xml_tag('Posts','Post',null,null) from xx where  account_id Like ?p1 and xylike ?p2 "

【讨论】:

  • 感谢 jaihind 我收到此错误 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“XML PATH('post') as post' 附近使用正确的语法
  • @user3619254 在您使用 MySQL 时,我对 sql 查询进行了更改
猜你喜欢
  • 2015-01-11
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
相关资源
最近更新 更多