读取xml

问题描述

public class TestXml { public static void main(String[] args) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); // never forget this! DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("d://dd.xml"); XPathFactory pathFactory = XPathFactory.newInstance(); XPath xpath = pathFactory.newXPath(); XPathExpression pathExpression = xpath.compile("//Model/o:Column/a:Name/text()"); Object result = pathExpression.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; for (int i = 0; i < nodes.getLength(); i++) { System.out.println(nodes.item(i).getNodeValue()); } } } dd.xml<?xml version="1.0" encoding="GB2312"?><?PowerDesigner AppLocale="UTF16" ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12"ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12" Target="ORACLE Version 10g" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML"version="12.0.0.1700"?><Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"><o:Column Id="o29"><a:ObjectID>627887B7-D8B5-4151-936A-15A527C092B1</a:ObjectID><a:Name>排行控制表ID</a:Name><a:Code>rank_control_id</a:Code><a:CreationDate>1269244973</a:CreationDate><a:Creator>Administrator</a:Creator><a:ModificationDate>1269259813</a:ModificationDate><a:Modifier>Administrator</a:Modifier><a:Comment>排行控制表主键</a:Comment><a:DataType>NUMBER(19)</a:DataType><a:Length>19</a:Length><a:Mandatory>1</a:Mandatory></o:Column></Model>这样为什么不能读取?但是下面这个不要命名空间的可以读取<?xml version="1.0" encoding="GB2312"?><?PowerDesigner AppLocale="UTF16" ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12"ID="{64EF704A-101D-4EF0-B2F3-F2586373698A}" Label="" Name="rank" Objects="203" Symbols="12" Target="ORACLE Version 10g" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML"version="12.0.0.1700"?><Model><Column Id="o29"><ObjectID>627887B7-D8B5-4151-936A-15A527C092B1</ObjectID><Name>排行控制表ID</Name><Code>rank_control_id</Code><CreationDate>1269244973</CreationDate><Creator>Administrator</Creator><ModificationDate>1269259813</ModificationDate><Modifier>Administrator</Modifier><Comment>排行控制表主键</Comment><DataType>NUMBER(19)</DataType><Length>19</Length><Mandatory>1</Mandatory></Column></Model> 问题补充:7454103 写道

解决方案

引用试试去解析一下pdm文件里面的表的字段的信息。我现在就在搞这个,很难解析啊 难怪 PowerDesigner 的 看你的XML 咋那么别扭了! 好的我试试!
解决方案二:
用用我的方法 绝对管用
解决方案三:
public static void main(String[] args) {File f = new File("WebRoot/swdqyxxadd.xml");Document doc = null;DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();try {DocumentBuilder db = dbf.newDocumentBuilder();try {// doc = db.parse(f);//用文件形式来读取数据String str = "<?xml version='1.0' encoding='gb2312'?>" +"<CorpInfos>" +"<CorpInfo>" +"<GUID>0A23B90600000110BA538FC800000096</GUID><!-- 唯一标识,南大不需要关心 -->" +"<YYZZZCH>991991</YYZZZCH><!-- 营业执照注册号 -->" +"<ZZJGDM>123123</ZZJGDM><!-- 组织机构代码 -->" +"</CorpInfo>" +"</CorpInfos>";InputStream is = new ByteArrayInputStream(str.getBytes());//将字符串改成流的形式doc = db.parse(is);//以流的形式读取} catch (IOException e) {System.out.println("没找到此文件");}} catch (Exception e) {e.printStackTrace();}NodeList list = doc.getElementsByTagName("CorpInfo");System.out.println(doc.getElementsByTagName("GUID").item(0).getFirstChild().getNodeValue());//Element element = null;//System.out.println(list.getLength());//for (int i = 0; i < list.getLength(); i++) {//element = (Element) list.item(i);// NodeList guid = element.getElementsByTagName("GUID");// System.out.println(guid.item(0).getFirstChild().getNodeValue());////System.out.println(element.getElementsByTagName("YYZZZCH").item(i)////.getFirstChild().getNodeValue());//}}
解决方案四:
XML 经常用! 解析的也不少! 没解析过加命名空间的! 关,注下能否补充下! 有错误信息没?
解决方案五:
xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"可能是这个命名空间不规范 或者 错了吧!

时间: 2024-09-27 01:58:18

读取xml的相关文章

C#读取XML文件——自定义类

C#本身也带有读取XML文件的类,但是许久未曾接触C#了,为了练练手,自己写了一个具有简单功能的类,实现了读取xml文件,查找元素,插入结点等功能.实现如下: XmlDoc类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleCSharp { class XmlDoc { internal static st

利用SAX解析读取XML文件

xml     这是我的第一个BLOG,今天在看<J2EE应用开发详解>一书,书中讲到XML编程,于是就按照书中的步骤自己测试了起来,可是怎么测试都不成功,后来自己查看了一遍源码,发现在读取XML文件的位置时有误,于是进行了更改,还真行了,心中涌出一中成就感,现将源码贴出来与给位分享: 使用XML文件连接MYSQL数据库,database.conf.xml文件如下: <database-conf><datasource> <driver>com.mysql.

使用.NET读取XML文件

xml 介绍 本文中我将介绍在ASP.NET应用程序中如何读取XML文件,这是一个十分有用的技巧.使用这个技巧,我们能够定制我们的应用程序的配置文件,也可以读取那些保存在XML文件中的数据. 概论 下面的代码将使用XmlTextReader对象将磁盘文件中的数据读取到XmlDocument对象中.XmlTextReader对象在功能上和StreamReader及BinaryReader对象十分相似,只不过它是专为读取XML文件而特别设计的.除此以外,XmlTextReader对象还有其他一些与X

在asp.net中读取XML文件

asp.net|xml 读: //打开某文件(假设web.config在根目录中)string filename=Server.MapPath("/") + @"WebApplication1\web.config";XmlDocument xmldoc= new XmlDocument();xmldoc.Load(filename); //得到顶层节点列表XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;fore

一个读取xml文件内容的类

xml 一个读取xml文件内容的类 package project.util.xml; import java.io.*;import java.util.*;import javax.servlet.http.*;import org.apache.log4j.*;import org.jdom.*;import org.jdom.input.*; /*** <p>Title: <font color="steelblue" size="10"&

ASP读取XML数据文件的方法

xml|数据 分别保存下面两段代码,一个保存为readxml.asp另一个保存为test.xml,放在同一个目录下面,调试程序即可,在程序里面我已经做了解释,读取代码可以做成一个readxml的函数,通过使用输入的参数而读取xml不同数据记录的不同的值.这段程序的改编来自互联网,有什么出入请见谅. readxml.asp以下是引用片段:<% dim xml,objNode,objAtr,nCntChd,nCntAtr Set xml=Server.CreateObject("Microso

写了一个Java读取XML文件的工具类

xml 如果我们有下面的一个XML文件,可以把它想象成一个Relation Database中的Table, 这个XML文件就是一个名字为managers的关系表,而一个<manager>所包含的就是一条记录(Record),而manager中的service和implementation就是一个个的栏位(Field) ! managers table  +  service implementation net.csdn.blog.xport.IDBConnectionManager net

读取XML文件

xml 1.xml文件格式 <?xml version="1.0" encoding="utf-8" ?> <NodeList> <Node text="GWGL"></Node> <Node text="手册备案" clsid="表头">    <Name>GWGL.EP_PRE_EMS3_CUS_HEAD</Name> 

使用XmlDocument读取XML节点所有数据

网上有好多ASP.NET读取XML的例子,比如使用Dataset来读取,但本文教程却是使用XmlDocument来读取XML节点下所有数据,我们先来看下这个XML格式:SysRightsDb.xml  XML Code <?xml version="1.0" encoding="utf-8" ?> <root> <rights name="SYS"> <xml name="股票行情"

C#读取XML文档

xml 这里介绍一种读取XML文档的方法,示例中用的是 XmlTextReader 函数,每执行 Read() 一次,读取一行. using System.Xml;   public KSBMCONFIG ReadConfig(string XmlConfigFile)  {   KSBMCONFIG _conf = new KSBMCONFIG ();   try   {    // Open an XML file    System.Xml.XmlTextReader reader;