我直接在这上面些难免有错误你自己调试看一下了不好意思
using SystemDataSqlcolint;
using SystemXml;
public Void ReaderXML(string URL)//URL是XML文件的路径
{
DataSet ds = new DataSet();
dsReaderXml("URL");
}
VB的代码: Public Sub SaveValues()
Dim xml_document As DOMDocument
Dim values_node As IXMLDOMElement
Dim values_chilnode As IXMLDOMElement
Dim values_thrnode As IXMLDOMElement
Dim str As String
Dim strsql As String
Dim i As Integer Dim rs As ADODBRecordset
strsql = "select StudyTypeID,Title,enable,eMod from StudyType "
Set rs = gconnExecute(strsql)
Set xml_document = New DOMDocument
'创建根节点
Set values_node = CreateRootNode(xml_document, "root")
'创建词根节点
Set values_chilnode = CreateChildNode(xml_document, values_node, "user")
'循环rs记录集
While Not rsEOF
'再次创建词根节点
Set values_thrnode = CreateChildNode(xml_document, values_node, "userinfo")
'子节点加入父节点
AddElementToParent xml_document, values_thrnode, "StudyTypeID", rs("StudyTypeID")
AddElementToParent xml_document, values_thrnode, "Title", rs("Title")
AddElementToParent xml_document, values_thrnode, "enable", rs("enable")
AddElementToParent xml_document, values_thrnode, "eMod", rs("eMod")
xml_documentSave (AppPath & "\vbxml")
rsMoveNextWendMsgBox (" 已成功保存到跟目录vbxml中")End Sub'创建根节点的方法
Public Function CreateRootNode(xmlDoc As DOMDocument, RootNodeName As String) As IXMLDOMElement
Dim objRootNode As IXMLDOMElement
Set objRootNode = xmlDoccreateNode("element", RootNodeName, "")
xmlDocappendChild objRootNode
Set CreateRootNode = objRootNode
End Function
'创建子节点的方法
Public Function CreateChildNode(xmlDoc As DOMDocument, ParentNode As IXMLDOMElement, NewNodeName As String) As IXMLDOMElement
Dim NewNode As IXMLDOMElement
Dim NewNode1 As IXMLDOMElement
Set NewNode = xmlDoccreateNode("element", NewNodeName, "")
ParentNodeappendChild NewNode
Set CreateChildNode = NewNodeEnd Function
'子节点加入父节点并读取值
Public Sub AddElementToParent(xmlDoc As DOMDocument, elemParent As IXMLDOMElement, elemName As String, sValue As String)
Dim ChildNode As IXMLDOMElement
Set ChildNode = xmlDoccreateNode("element", elemName, "")
ChildNodeText = sValue
elemParentappendChild ChildNode
Set ChildNode = Nothing
End Sub
如果数据量很多,比如存取“很多人”的留言和其他相关信息。这样xml标签代码量自然会很多,逐个遍历所用的时间肯定较长,所以这个时候数据库就能快点,对于频繁 *** 作数据源的,自然使用数据库的连接池功能。
如果数据量不是很大。那自然选择xml,减少创建线程和线程等待的时间。
你就是要找ProductCode为某值的所有Table
把你的xpath改一下,一条查询就出来了
XmlNodeList tableList = docSelectNodes(stringFormat("//ProductCode[text()='{0}']/parent::Table",TxtProductCodeText));
然后遍历tableList取值就行了
如果数据量很大的话,用XPathDocument可以提高查询速度
====================================
"//ProductCode[text()='{0}']/parent::Table"
这条查询的意思查找任意(//)ProductCode节点,要求节点的text()返回值也就是innerText为{0},找到之后取他的父(parent)Table节点
这样查询出来的node集合就是所有你需要的节点,不用再作判断,直接取出放进你的DataTable就行了
这个是你自定义的,因为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封装得已经很完善了,用起来也很方便。
不说废话直接上代码,下面是要读取的xml文件:
<xml version="10" encoding="UTF-8"><PERSON>
<NAME>a1</NAME>
<ADDRESS>b1</ADDRESS>
<TEL>c1</TEL>
<FAX>d1</FAX>
<EMAIL>e1</EMAIL>
</PERSON>
下面是读取xml文件的java代码,在数据库中建一张和xml文件字段对应的表,将读取的数据插入到表中。如果数据插入不会,欢迎继续追问:
import javaioFile;import javaxxmlparsersDocumentBuilder;
import javaxxmlparsersDocumentBuilderFactory;
import orgw3cdomDocument;
import orgw3cdomElement;
import orgw3cdomNodeList;
public class Test {
public static void main(String[] args) throws Exception{
Systemoutprintln("22");
DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();
DocumentBuilder db = dbfnewDocumentBuilder();
Document document = dbparse(new File("candidatexml"));
NodeList list = documentgetElementsByTagName("PERSON");
for(int i = 0; i < listgetLength(); i++)
{
Element element = (Element)listitem(i);
String content = elementgetElementsByTagName("NAME")item(0)getFirstChild()getNodeValue();
content = elementgetElementsByTagName("ADDRESS")item(0)getFirstChild()getNodeValue();
content = elementgetElementsByTagName("TEL")item(0)getFirstChild()getNodeValue();
content = elementgetElementsByTagName("FAX")item(0)getFirstChild()getNodeValue();
content = elementgetElementsByTagName("EMAIL")item(0)getFirstChild()getNodeValue();
}
}
}
以上就是关于vs2005中如何读取xml类型文件并存入数据库全部的内容,包括:vs2005中如何读取xml类型文件并存入数据库、如何从数据库读取数据组织成xml文件发送出去、从数据库和xml读取数据那个快一点,哪个好一点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)