Java 从mysql导出的xml中读取列值
我需要读取从mysql数据库导出的表的列。我的示例xmlJava 从mysql导出的xml中读取列值,java,mysql,Java,Mysql,我需要读取从mysql数据库导出的表的列。我的示例xml <?xml version="1.0" encoding="utf-8" ?> + <!-- - phpMyAdmin XML Dump - version 3.4.5 - http://www.phpmyadmin.net - - Host: localhost - Generation Time: Oct 28, 2014 at 07:45 AM - Server version: 5.5.16 - PHP Ver
<?xml version="1.0" encoding="utf-8" ?>
+ <!-- - phpMyAdmin XML Dump
- version 3.4.5
- http://www.phpmyadmin.net
-
- Host: localhost
- Generation Time: Oct 28, 2014 at 07:45 AM
- Server version: 5.5.16
- PHP Version: 5.3.8
-->
- <pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
- <!--
- Structure schemas
-->
- <pma:structure_schemas>
- <pma:database name="ArchiveIndexer" collation="utf32_unicode_ci" charset="utf32">
<pma:table name="classificationl2">CREATE TABLE `classificationl2` ( `SNo` int(4) NOT NULL AUTO_INCREMENT, `L1Name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `L2Name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`SNo`) ) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=latin1;</pma:table>
</pma:database>
</pma:structure_schemas>
- <!--
- Database: 'ArchiveIndexer'
-->
- <database name="ArchiveIndexer">
- <!-- Table classificationl2
-->
- <table name="classificationl2">
<column name="SNo">4</column>
<column name="L1Name">AC கலை-கலாசாரம் - ARTS CULTURE</column>
<column name="L2Name">AW விருதுகள் விழாக்கள் - AWARDS FUNCTIONS</column>
</table>
- <table name="classificationl2">
<column name="SNo">5</column>
<column name="L1Name">ACகலை-கலாசாரம் - ARTS & CULTURE</column>
<column name="L2Name">BUஅழகிப் போட்டி - BEAUTY CONTESTS</column>
</table>
- <table name="classificationl2">
<column name="SNo">6</column>
<column name="L1Name">ACகலை-கலாசாரம் - ARTS & CULTURE</column>
<column name="L2Name">DAநடனம் - DANCE</column>
</table>
- <table name="classificationl2">
<column name="SNo">7</column>
<column name="L1Name">ACகலை-கலாசாரம் - ARTS & CULTURE</column>
<column name="L2Name">DRநாடகம் - DRAMA</column>
</table>
</database>
</pma_xml_export>
+
-
-
-
-
创建表'classificationl2`(`SNo`int(4)NOT NULL自动增量,`L1Name`varchar(128)字符集utf8 COLLATE utf8\U unicode\U ci NOT NULL,`L2Name`varchar(128)字符集utf8 COLLATE utf8\U unicode\U ci NOT NULL,主键(`SNo`)引擎=InnoDB AUTO\U增量=128默认字符集=latin1;
-
-
-
-
4.
自动控制கலை-கலாசாரம் - 艺术文化
哦விருதுகள் விழாக்கள் - 奖励功能
-
5.
自动控制கலை-கலாசாரம் - 艺术与文化
日分அழகிப் போட்டி - 选美比赛
-
6.
自动控制கலை-கலாசாரம் - 艺术与文化
DAநடனம் - 跳舞
-
7.
自动控制கலை-கலாசாரம் - 艺术与文化
博士நாடகம் - 戏剧
我想知道如何读取所有L1name并将其设置为jcombo框,还需要根据选定的L1值检索l2值。我使用jdbc实现了这一点,但现在我的要求是删除jdbc。有什么想法请提出来。试试这个,肯定会有帮助的
public class XMLreadsample {
public static ArrayList<String> L1names = new ArrayList();
public static ArrayList<String> L2names = new ArrayList();
public static void main(String[] args) {
try {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("classification2.xml"));
doc.getDocumentElement().normalize();
System.out.println("Root element of the doc is " + doc.getDocumentElement().getNodeName());
NodeList listOfPersons = doc.getElementsByTagName("table");
int totalPersons = listOfPersons.getLength();
System.out.println("Total no of columns : " + totalPersons);
for (int s = 0; s < listOfPersons.getLength(); s++) {
Node firstPersonNode = listOfPersons.item(s);
if (firstPersonNode.getNodeType() == Node.ELEMENT_NODE) {
Element firstPersonElement = (Element) firstPersonNode;
NodeList firstNameList = firstPersonElement.getElementsByTagName("column");
Element firstNameElement = (Element) firstNameList.item(0);
NodeList textFNList = firstNameElement.getChildNodes();
System.out.println("Sl.NO : " + ((Node) textFNList.item(0)).getNodeValue().trim());
NodeList lastNameList = firstPersonElement.getElementsByTagName("column");
Element lastNameElement = (Element) lastNameList.item(1);
NodeList textLNList = lastNameElement.getChildNodes();
System.out.println("L1 Name : " + ((Node) textLNList.item(0)).getNodeValue().trim());
L1names.add(((Node) textLNList.item(0)).getNodeValue().trim());
NodeList ageList = firstPersonElement.getElementsByTagName("column");
Element ageElement = (Element) ageList.item(2);
NodeList textAgeList = ageElement.getChildNodes();
System.out.println("L2 Name : " + ((Node) textAgeList.item(0)).getNodeValue().trim());
L2names.add(((Node) textAgeList.item(0)).getNodeValue().trim());
}//end of if clause
}//end of for loop with s var
System.err.println("L1names --> "+L1names);
System.err.println("L2names --> "+L2names);
System.err.println("L1names size --> "+L1names.size());
System.err.println("L2names size --> "+L2names.size());
} catch (SAXParseException err) {
System.out.println("** Parsing error" + ", line " + err.getLineNumber() + ", uri " + err.getSystemId());
System.out.println(" " + err.getMessage());
} catch (SAXException e) {
Exception x = e.getException();
((x == null) ? e : x).printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
}
}
}
公共类XMLreadsample{
公共静态ArrayList L1names=新ArrayList();
公共静态ArrayList L2names=新ArrayList();
公共静态void main(字符串[]args){
试一试{
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();
documentdoc=docBuilder.parse(新文件(“classification2.xml”);
doc.getDocumentElement().normalize();
System.out.println(“文档的根元素是”+doc.getDocumentElement().getNodeName());
nodelistlistophersons=doc.getElementsByTagName(“表”);
int totalPersons=listOfPersons.getLength();
System.out.println(“总列数:“+totalPersons”);
对于(int s=0;s”+L1names);
System.err.println(“L2名称-->”+L2名称);
System.err.println(“L1names size-->”+L1names.size());
System.err.println(“L2names size-->”+L2names.size());
}捕获(SAXParseException错误){
System.out.println(“**解析错误“+”,行“+err.getLineNumber()+”,uri“+err.getSystemId());
System.out.println(“+err.getMessage());
}捕获(SAXE异常){
异常x=e.getException();
((x==null)?e:x.printStackTrace();
}捕获(可丢弃的t){
t、 printStackTrace();
}
}
}
您试过什么了吗?