SELECT TOP 10 * FROM dbo.UserInfo
FOR XML PATH('UserInfo'),ROOT ('UserList')
就会生成以下XML
PATH里面的字符串生成行标签
ROOT生成根标签
<UserList>
<UserInfo>
<UserName>administrator</UserName>
<Age>21</Age>
如何将数据库中的查询出来的数据放到xml中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 = 0i <10i++) {
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()
}
}
这个是你自定义的,因为XML就是文本,把数据转换成XML和相反的 *** 作被称作序列化与反序列化。这样的话你自己定义序列化的逻辑和反序列化的逻辑就可以了。例如表MyTable有两个字段Id、Name。你可以定义成:<MyTable>
<Items>
<Item Id="1" Name="a"/>
<Item Id="2" Name="b"/>
</Items>
</MyTable>
你也可以定义成:
<MyTable>
<Item>
<Id>1</Id>
<Name>a</Name>
</Item>
<Item>
<Id>2</Id>
<Name>b</Name>
</Item>
</MyTable>
至于程序你自己查查吧。就是数据库 *** 作和Xml *** 作的命名空间。.Net封装得已经很完善了,用起来也很方便。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)