如何把从数据库读取的信息做成xml文件

如何把从数据库读取的信息做成xml文件,第1张

如果是Sql2005以上版本就简单了

SELECT TOP 10 * FROM dbo.UserInfo

FOR XML PATH('UserInfo'),ROOT ('UserList')

就会生成以下XML

PATH里面的字符串生成行标签

ROOT生成根标签

<UserList>

<UserInfo>

<UserName>administrator</UserName>

<Age>21</Age>

<NickName>小张</NickName>

......

</UserInfo>

<UserInfo>

<UserName>administrator</UserName>

<Age>21</Age>

<NickName>小张</NickName>

......

</UserInfo>

<UserInfo>

<UserName>administrator</UserName>

<Age>21</Age>

<NickName>小张</NickName>

......

</UserInfo>

......

</UserList>

1、将数据库的内容读取到dataTable或dataSet中

2、dataTable或dataSet转为xml

 private string ConvertDataTableToXML(DataTable xmlDS) //DataTable可改用dataset

    {

        MemoryStream stream = null

        XmlTextWriter writer = null

        try

        {

            stream = new MemoryStream()

            writer = new XmlTextWriter(stream, Encoding.Default)

            xmlDS.WriteXml(writer)

            int count = (int)stream.Length

            byte[] arr = new byte[count]

            stream.Seek(0, SeekOrigin.Begin)

            stream.Read(arr, 0, count)

            UTF8Encoding utf = new UTF8Encoding()

            return utf.GetString(arr).Trim()

        }

        catch

        {

            return String.Empty

        }

        finally

        {

            if (writer != null) writer.Close()

        }

    }

public class Test8 {

class UserBean {

private String userName

private String account

private String roleName

public UserBean(String userName, String account, String roleName) {

super()

this.userName = userName

this.account = account

this.roleName = roleName

}

public String getUserName() {

return userName

}

public void setUserName(String userName) {

this.userName = userName

}

public String getAccount() {

return account

}

public void setAccount(String account) {

this.account = account

}

public String getRoleName() {

return roleName

}

public void setRoleName(String roleName) {

this.roleName = roleName

}

public String toString() {

return "<user>" + "<userName>" + userName + "</userName>" + "<account>" + account + "</account>"

+ "<roleName>" + roleName + "</roleName>" + "</user>\n"

}

}

public void printXml() {

//获取数据库数据

List<UserBean> list = new ArrayList<UserBean>()

for (int i = 0 i < 10 i++) {

UserBean user = new UserBean("User " + i, "U0000" + i, (i % 2 == 0 ? "管理员" : "普通用户"))

list.add(user)

}

//转XML

StringBuffer xml = new StringBuffer()

xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")

xml.append("<users>\n")

for(UserBean user : list){

xml.append(user)

}

xml.append("</users>")

System.out.println(xml.toString())

}

/**

 * @param args

 */

public static void main(String[] args) {

Test8 test = new Test8()

test.printXml()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10817009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存