数据库生成xml文件
‘壹’ java读取oracle数据库里面的数据生成xml文件,生成的xml文件出现乱码怎么解决
跟踪问题所在:
1、查询一下数据库,判断在数据库中的时候,是否是已经存在了乱码。
2、在读取到Java的时候,你用SystemOut输出一下,判断这个时候,是否是乱码。
3、写入到xml文件的时候,XML中是否是乱码。
如果是1种情况出现乱码,则是写入数据库的时候出现乱码,需要更改写入程序的代码。
如果是2种情况出现乱码,则是读取Oracle的字符集出现错误,设置读取的字符集。
如果是3种情况出现乱码,则是在Java类中写入的时候,设置字符集,查看数据库字符集,设置为UTF-8、或者是GBK字符集。
希望对你有帮助。
‘贰’ 从数据库中读取数据,创建xml文件
如果是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>
‘叁’ 如何将数据表中数据存为xml文件
我只是知道用jdom编程实现将数据库中的数据导出为XML文件,这里有一个jsp的例子,也许有点参考作用,用的是SQLServer2000数据库:(需要下载JDOM.jar)
<%@pagecontentType="text/html;charset=GBK"%>
<HTML>
<HEAD>
<TITLE>用JDOM实现数据库到XML的转换</TITLE>
</HEAD>
<BODY>
<%@pageimport="java.sql.*"%>
<%@pageimport="java.util.*"%>
<%@pageimport="java.io.*"%>
<%@pageimport="java.lang.*"%>
<%@pageimport="com.microsoft.jdbc.sqlserver.SQLServerDriver"%>
<%@pageimport="org.jdom.*"%>
<%@pageimport="org.jdom.output.*"%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=practice";
Stringuser="sa";
Stringpassword="123456";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="select*fromcustom";
ResultSetrs=stmt.executeQuery(sql);
Documentdocument=newDocument(newElement("clist"));//创建文档
ResultSetMetaDatarsmd=rs.getMetaData();//获取字段名
intnumberOfColumns=rsmd.getColumnCount();//获取字段数
inti=0;
while(rs.next()){//将查询结果取出
Elementelement0=newElement("cilent");//创建元素生成JDOM树
document.getRootElement().addContent(element0);
for(i=1;i<=numberOfColumns;i++)
{Stringdate=newString(rs.getString(i).getBytes("ISO-8859-1"),"gb2312");//代码转换
Elementelement=newElement(rsmd.getColumnName(i)).setText(date);
element0.addContent(element);
}
}
rs.close();//关闭结果集
stmt.close();//关闭statement
conn.close();//关闭连接
XMLOutputteroutp=newXMLOutputter("",true,"GB2312");
outp.output(document,newFileOutputStream("D:\Tomcat\webapps\learn\jsp\data.xml"));//输出XML文档
out.print("XML文档生成完毕!");
%>
<ahref="../jsp/data.xml">点击打开产生的XML文档</a>
</BODY>
</HTML>
用JAVA也可以实现,做法基本相同。
‘肆’ 如何把数据库的表弄成xml格式
方法:
点击Excel左上角按钮,在弹出的选项中,点击“另存为”
或者直接在Excel中按下快捷键F12
2、选择最后一项:其他格式。
3、接下来,重命名一下文件名,并选择文件类型为:
XML数据(*.xml)
4、点击“保存”按钮,会出现如下错误警告:
因为工作簿不包含任何XML映射,所以无法保存任何XML数据。
单击“帮助”以获取详细信息。
5、这个原因是我们的工作簿只是普通的Excel数据,的确没有做过XML映射,或者Excel数据也不是从XML文件导入的。
这时,我们尝试另存为另一种文件类型:
XML电子表格2003(*.xml)
6、点击保存按钮。
7、这时会弹出一个兼容性对话框,问你是否保持工作簿的这种格式。
8、点击“是”,即可将Excel保存为XML格式的文档了。
我们使用软件打开这个XML文档(例如通过Chrome浏览器),发现格式正常,Excel数据也全在里面。
‘伍’ 怎么把数据库信息转换成XML文件
如果是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>
‘陆’ php读取数据库并生成xml文件
<?php
//读取数据库我就不说了,从数据库取出来就行了
#使用dom生成xml,注意生成的xml中会没有空格。
$dom=new DOMDocument('1.0','utf-8');
$time = time();
$path="$time.xml"; // $path 为xml文件的存储路径。
$mole=$dom->createElement('breakfast_menu');//创建一个节点
$dom->appendChild($mole); //在指定元素节点的最后一个子节点之后添加节点
$food=$dom->createElement('food'); //外body
$mole->appendChild($food);
$name=$dom->createElement('name'); //内table
$name_value=$dom->createTextNode('测试数据1');
$name->appendChild($name_value);
$food->appendChild($name);
$price=$dom->createElement('price'); //内table
$price_value=$dom->createTextNode('测试数据2');
$price->appendChild($price_value);
$food->appendChild($price);
$description=$dom->createElement('description'); //内table
$description_value=$dom->createTextNode('测试数据3');
$description->appendChild($description_value);
$food->appendChild($description);
$calories=$dom->createElement('calories'); //内table
$calories_value=$dom->createTextNode('测试数据4');
$calories->appendChild($calories_value);
$food->appendChild($calories);
$dom->saveXML();
$dom->save($path);
//var_mp($dom->save($path));exit;
if($dom->saveXML()){
echo "生成成功:".$dom->saveXML();
}else{
echo "生成失败";
}
?>
‘柒’ access数据库如何生成xml文件
如果
xml
属性值里包含双引号,则有两种方法:1.属性值改用单引号界定
比如:caption='测试"测试'2.属性值总的双引号用实体引用替换
比如:caption="测试"测试"
但由于是程序动态生成的,建议:当属性值用单引号界定时,那含有属性值的变量比如A_name最好
把
单引号替换成
单引号的实体引用。当属性值用双引号界定时,那含有属性值的变量比如A_name最好
把
双引号替换成
双引号的实体引用。这样安全些。
不知道是不是你想要的答案。因为你的例子提示的那个
2个“"”号
没什么问题,只是属性值的界定。
‘捌’ 请问如何从数据库中读取一个存储过程并把查询结果生成一个xml文件(c#)
这个是我写的代码,你把相应的名称改一下就可以了:
==========================================================
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceWriteXML
{
classProgram
{
staticvoidMain(string[]args)
{
//connectionstring
stringconnString=@"
server=.sql2005express;
integratedsecurity=true;
database=northwind";
stringqry=@"
select
proctname,
unitprice
from
procts";
SqlConnectionconn=newSqlConnection(connString);
try
{
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=newSqlCommand(qry,conn);
conn.Open();
DataSetds=newDataSet();
da.Fill(ds,"procts");
ds.WriteXml(@"C:.xml");
Console.WriteLine("ThefileisCreated");
}
catch(Exceptione)
{
Console.WriteLine("Error:"+e);
}
finally
{
conn.Close();
}
}
}
}
=================================================================
显示效果如下: