【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

简介: 首先 关于dom4j的API,有如下:当然  其中的实体引用有以下:测试使用环境:使用Maven搭建web环境,pom.xml文件配置如下: 1 2 4.0.0 3 com.

 首先 关于dom4j的API,有如下:

当然  其中的实体引用有以下:

测试使用环境:

使用Maven搭建web环境,pom.xml文件配置如下:

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2   <modelVersion>4.0.0</modelVersion>
  3   <groupId>com.it.sxd</groupId>
  4   <artifactId>springModel</artifactId>
  5   <version>0.0.1-SNAPSHOT</version>
  6   <packaging>war</packaging>
  7   <build>
  8       <plugins>
  9           <plugin>
 10               <artifactId>maven-war-plugin</artifactId>
 11               <configuration>
 12                   <version>3.0</version>
 13               </configuration>
 14           </plugin>
 15       </plugins>
 16   </build>
 17   
 18       <properties>
 19         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 20         <spring.version>4.3.4.RELEASE</spring.version>
 21         <hibernate.version>4.3.8.Final</hibernate.version>
 22     </properties>
 23     
 24   <dependencies>
 25       <!-- https://mvnrepository.com/artifact/javax.persistence/persistence-api -->
 26     <dependency>
 27         <groupId>javax.persistence</groupId>
 28         <artifactId>persistence-api</artifactId>
 29         <version>1.0</version>
 30     </dependency>
 31  
 32         <!-- junit -->
 33         <dependency>
 34             <groupId>junit</groupId>
 35             <artifactId>junit</artifactId>
 36             <version>4.12</version>
 37             <scope>test</scope>
 38         </dependency>
 39         
 40         <!-- spring -->
 41         <dependency>
 42             <groupId>org.springframework</groupId>
 43             <artifactId>spring-core</artifactId>
 44             <version>${spring.version}</version>
 45         </dependency>
 46 
 47         <dependency>
 48             <groupId>org.springframework</groupId>
 49             <artifactId>spring-beans</artifactId>
 50             <version>${spring.version}</version>
 51         </dependency>
 52 
 53         <dependency>
 54             <groupId>org.springframework</groupId>
 55             <artifactId>spring-context</artifactId>
 56             <version>${spring.version}</version>
 57         </dependency>
 58 
 59         <dependency>
 60             <groupId>org.springframework</groupId>
 61             <artifactId>spring-tx</artifactId>
 62             <version>${spring.version}</version>
 63         </dependency>
 64 
 65         <dependency>
 66             <groupId>org.springframework</groupId>
 67             <artifactId>spring-web</artifactId>
 68             <version>${spring.version}</version>
 69         </dependency>
 70 
 71         <dependency>
 72             <groupId>org.springframework</groupId>
 73             <artifactId>spring-test</artifactId>
 74             <version>${spring.version}</version>
 75             <scope>test</scope>
 76         </dependency>
 77 
 78         <!-- 使用SpringMVC需配置 -->
 79         <dependency>
 80             <groupId>org.springframework</groupId>
 81             <artifactId>spring-webmvc</artifactId>
 82             <version>${spring.version}</version>
 83         </dependency>
 84         <!-- spring cglib 代理 -->
 85         <dependency>
 86             <groupId>cglib</groupId>
 87             <artifactId>cglib</artifactId>
 88             <version>2.2.2</version>
 89         </dependency>
 90         <!-- 关系型数据库整合时需配置 如hibernate jpa等 -->
 91         <dependency>
 92             <groupId>org.springframework</groupId>
 93             <artifactId>spring-orm</artifactId>
 94             <version>${spring.version}</version>
 95         </dependency>
 96 
 97         <!-- hibernate -->
 98         <dependency>
 99             <groupId>org.hibernate</groupId>
100             <artifactId>hibernate-core</artifactId>
101             <version>${hibernate.version}</version>
102         </dependency>
103 
104         <dependency>
105             <groupId>org.hibernate</groupId>
106             <artifactId>hibernate-ehcache</artifactId>
107             <version>${hibernate.version}</version>
108         </dependency>
109 
110         <!-- 二级缓存ehcache -->
111         <dependency>
112             <groupId>net.sf.ehcache</groupId>
113             <artifactId>ehcache</artifactId>
114             <version>2.9.0</version>
115         </dependency>
116 
117         <!-- log4j -->
118         <dependency>
119             <groupId>log4j</groupId>
120             <artifactId>log4j</artifactId>
121             <version>1.2.17</version>
122         </dependency>
123 
124         <!-- mysql连接 -->
125         <dependency>
126             <groupId>mysql</groupId>
127             <artifactId>mysql-connector-java</artifactId>
128             <version>5.1.34</version>
129         </dependency>
130 
131         <!-- c3p0数据源 -->
132         <dependency>
133             <groupId>com.mchange</groupId>
134             <artifactId>c3p0</artifactId>
135             <version>0.9.5-pre10</version>
136         </dependency>
137 
138         <!-- json -->
139 
140         <!-- 1号 -->
141         <dependency>
142             <groupId>com.fasterxml.jackson.core</groupId>
143             <artifactId>jackson-core</artifactId>
144             <version>2.8.1</version>
145         </dependency>
146         <!-- 2号 -->
147         <dependency>
148             <groupId>com.fasterxml.jackson.core</groupId>
149             <artifactId>jackson-annotations</artifactId>
150             <version>2.8.1</version>
151         </dependency>
152 
153         <!-- 3号 -->
154         <dependency>
155             <groupId>com.fasterxml.jackson.core</groupId>
156             <artifactId>jackson-databind</artifactId>
157             <version>2.8.1</version>
158             <exclusions>
159                 <exclusion>
160                     <artifactId>jackson-core</artifactId>
161                     <groupId>com.fasterxml.jackson.core</groupId>
162                 </exclusion>
163                 <exclusion>
164                     <artifactId>jackson-annotations</artifactId>
165                     <groupId>com.fasterxml.jackson.core</groupId>
166                 </exclusion>
167             </exclusions>
168         </dependency>
169 
170         <!-- 4号 -->
171         <dependency>
172             <groupId>com.google.code.gson</groupId>
173             <artifactId>gson</artifactId>
174             <version>2.7</version>
175         </dependency>
176         <!-- 5号 -->
177         <dependency>
178             <groupId>net.sf.json-lib</groupId>
179             <artifactId>json-lib</artifactId>
180             <version>2.4</version>
181             <classifier>jdk15</classifier>
182         </dependency>
183         <!-- 5号json-lib还需要以下依赖包 -->
184         <dependency>
185             <groupId>commons-lang</groupId>
186             <artifactId>commons-lang</artifactId>
187             <version>2.5</version>
188         </dependency>
189         <dependency>
190             <groupId>commons-beanutils</groupId>
191             <artifactId>commons-beanutils</artifactId>
192             <version>1.9.2</version>
193         </dependency>
194         <dependency>
195             <groupId>commons-collections</groupId>
196             <artifactId>commons-collections</artifactId>
197             <version>3.2.1</version>
198         </dependency>
199         <dependency>
200             <groupId>commons-logging</groupId>
201             <artifactId>commons-logging</artifactId>
202             <version>1.2</version>
203         </dependency>
204         
205         <!-- aop -->
206         <dependency>
207             <groupId>org.aspectj</groupId>
208             <artifactId>aspectjweaver</artifactId>
209             <version>1.8.4</version>
210         </dependency>
211 
212         <!-- servlet -->
213         <dependency>
214             <groupId>javax.servlet</groupId>
215             <artifactId>servlet-api</artifactId>
216             <version>3.0-alpha-1</version>
217             <scope>provided</scope>
218         </dependency>
219 
220         <dependency>
221             <groupId>javax.servlet</groupId>
222             <artifactId>jstl</artifactId>
223             <version>1.2</version>
224         </dependency>
225         <!-- guava 集合的交并操作 -->        
226         <dependency>
227             <groupId>com.google.guava</groupId>
228             <artifactId>guava</artifactId>
229             <version>19.0</version>
230         </dependency>
231         <dependency>
232             <groupId>com.google.guava</groupId>
233             <artifactId>guava-collections</artifactId>
234             <version>r03</version>
235         </dependency>
236         
237         <!-- 文件上传 -->
238         <dependency>
239             <groupId>commons-fileupload</groupId>
240             <artifactId>commons-fileupload</artifactId>
241             <version>1.3.1</version>
242         </dependency>
243         <!--  https://mvnrepository.com/artifact/jaxen/jaxen -->
244         <dependency>
245             <groupId>jaxen</groupId>
246             <artifactId>jaxen</artifactId>
247             <version>1.1.6</version>
248         </dependency>
249         
250         
251         
252         
253 
254   </dependencies>
255 </project>
View Code

 

 

关于dom4j测试xml文件----实现的代码:

  1 package com.sxd.dom4j.test;
  2 
  3 import java.io.File;
  4 import java.io.FileOutputStream;
  5 import java.io.IOException;
  6 import java.io.OutputStream;
  7 import java.nio.file.Files;
  8 import java.util.List;
  9 
 10 import org.dom4j.Attribute;
 11 import org.dom4j.Document;
 12 import org.dom4j.DocumentException;
 13 import org.dom4j.DocumentHelper;
 14 import org.dom4j.Element;
 15 import org.dom4j.io.OutputFormat;
 16 import org.dom4j.io.SAXReader;
 17 import org.dom4j.io.XMLWriter;
 18 import org.junit.Test;
 19 
 20 public class Dom4jTest {
 21     
 22     @Test
 23     public void mainTest() throws IOException, DocumentException{
 24         
 25 //        createXML();//创建XML文件
 26 //        queryXMLByXPath();//查找XML文件  
 27 //        queryXMLByDom4j();//查找XML文件
 28 //        queryXMLByReadXML();//查找XML文件
 29         updateOdeleteXML();//修改或删除元素
 30     }
 31     /**
 32      * 创建 XML文件
 33      * @throws IOException 
 34      */
 35     public void createXML() throws IOException{
 36         OutputStream out = new FileOutputStream(new File("d:/testXMLFile.xml"));
 37         //XMLWriter生成物理文件
 38         //但是一般生成的xml文件内容比较紧凑 
 39         //调用OutputFormat.createPrettyPrint()或者OutputFormat.createCompactFormat()方法可以使XML文件内容格式化输出
 40         XMLWriter writer = new XMLWriter(out, OutputFormat.createPrettyPrint());
 41         
 42         //Document定义了XML 文档
 43         Document document = DocumentHelper.createDocument();
 44         
 45         //设置根节点
 46         Element elementRoot = document.addElement("根节点");
 47         document.setRootElement(elementRoot);
 48         /**
 49          * Element和Node的区别在于:
 50          *     1.Element代表一个对象,对象中有属性,属性有属性值,对象有文本
 51          *         例如:<bean id="myTestBean" class="com.sxd.spring.test1.MyTestBean">测试bean</bean>
 52          *         就是一个完整的Element
 53          *     2.Node代表任意一个节点,可以是上面的Element,也可以是Element中的某个属性
 54          *         例如:id="myTestBean"可以是一个Node
 55          *               <bean id="myTestBean" class="com.sxd.spring.test1.MyTestBean">测试bean</bean> 也可以是一个Node
 56          */
 57         
 58         Element element1 = elementRoot.addElement("一层节点");
 59         element1.addAttribute("属性名1","属性值1");
 60         
 61         Element element2_1 = element1.addElement("二层节点");
 62         element2_1.addAttribute("id", "attr2_1").addAttribute("name", "attr2_1");
 63         Element element2_2 = element1.addElement("二层节点");
 64         element2_2.addAttribute("id", "attr2_2").addAttribute("name", "attr2_2");
 65         Element element2_3 = element1.addElement("二层节点");
 66         element2_3.addAttribute("id", "attr2_3").addAttribute("name", "attr2_3");
 67         /**
 68          * <beans>text</beans>
 69          */
 70         element2_2.addText("开始节点和结束节点之间的文本文字");
 71         /**
 72          * 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
 73          */
 74         element2_3.addCDATA("CDATA中的文本 是xml不应该解析的文本数据,一般放置为包含<或者&这种特殊字符的文本");
 75         
 76         writer.write(document);
 77         writer.close();
 78     }
 79     
 80     
 81     
 82     /**
 83      * 查看  XML文件   使用SAXReader----使用了xpath解析
 84      * @throws DocumentException 
 85      */
 86     public void queryXMLByXPath() throws DocumentException{
 87             SAXReader reader = new SAXReader();
 88             Document document = reader.read(new File("d:/testXMLFile.xml"));
 89             //使用XPath语法  selectNodes()方法得到所有的Element   这里需要Jaxen是一个开源的XPath库
 90             List<Element> list = document.selectNodes("根节点|一层节点|二层节点");
 91             if(!list.isEmpty() && list!=null && list.size()>0){
 92                 for (Element element : list) {
 93                     just4Element(element);
 94                 }
 95             }
 96     }
 97     
 98     /**
 99      * 递归  抽离element
100      * @param element
101      */
102     public void just4Element(Element element){
103         justPlayElement(element);
104         List<Element> list = element.elements();
105         if(!list.isEmpty() && list.size()>0 && list!=null){
106             for (Element e : list) {
107                 just4Element(e);
108             }
109         }
110     }
111     
112     
113     /**
114      * 重载  展示element信息  默认展示属性信息
115      * @param element
116      */
117     public void justPlayElement(Element element){
118         boolean showSon = true;
119         justPlayElement(element,showSon);
120     }
121     
122     /**
123      * 展示element信息
124      * @param element
125      */
126     public void justPlayElement(Element element,boolean showSon){
127         System.out.println("节点名称:"+element.getName());
128         System.out.println("节点文本:"+element.getText());
129         int attributeSum = element.attributeCount();
130         System.out.println("节点属性个数:"+attributeSum);
131         //或者
132         if(showSon){
133             List<Attribute> attList = element.attributes();
134             if(attList!= null && attList.size()>0){
135                 for (Attribute attribute : attList) {
136                     System.out.println("节点"+element.getName()+"的属性->"+attribute.getName()+":"+attribute.getValue());
137                 }
138             }
139         }
140         
141         System.out.println("----------------------------------------------------------------------------------------");
142         
143     }
144     
145     
146     /**
147      * 查看  XML文件   使用SAXReader  --纯dom4j解析
148      * @throws DocumentException 
149      */
150     public void queryXMLByDom4j() throws DocumentException{
151         SAXReader reader = new SAXReader();
152         Document document = reader.read(new File("d:/testXMLFile.xml"));
153         //先得到根节点
154         Element element = document.getRootElement();
155         if(element!= null){//然后调用递归 去取出 根节点中所有结点信息
156             just4Element(element);
157         }
158     }
159     
160     /**
161      * 查看 XML文件  通过读取XML字符串的方式
162      * @throws IOException 
163      * @throws DocumentException 
164      */
165     public void queryXMLByReadXML() throws IOException, DocumentException{
166         File file = new File("d:/testXMLFile.xml");
167         List<String> list = Files.readAllLines(file.toPath());
168         StringBuilder xmlStr = new StringBuilder();//优先使用StringBuilder[单线程 速度更快]
169         for (String string : list) {
170             xmlStr.append(string);
171         }
172         //将字符串转化为XML
173         Document document = DocumentHelper.parseText(xmlStr.toString());
174         //先得到根节点
175         Element element = document.getRootElement();
176         if(element!= null){//然后调用递归 去取出 根节点中所有结点信息
177             just4Element(element);
178         }
179     }
180     
181     /**
182      * 修改XML文件内容
183      * @throws DocumentException 
184      * @throws IOException 
185      */
186     public void updateOdeleteXML() throws DocumentException, IOException{
187         SAXReader reader = new SAXReader();
188         Document document = reader.read(new File("d:/testXMLFile.xml"));
189         Element elementRoot = document.getRootElement();
190         Element element = (Element) elementRoot.selectSingleNode("一层节点");
191         justPlayElement(element,true);//调用 展示标签信息 不展示子层信息
192         
193         
194         element.addAttribute("属性名2", "属性值2");
195         element.addText("一层节点的文本 是修改之后的结果");
196         element.setAttributeValue("属性名1", "修改之后的属性值1");//Deprecated.  As of version 0.5. Please use addAttribute(QName, String) instead. WILL BE REMOVED IN dom4j-1.6 !!
197         element.addAttribute("属性名1", "二次修改之后的属性值1");
198         
199         justPlayElement(element);//展示 修改之后的 元素信息
200         
201         List<Element> elements = element.elements();
202         for (Element element2 : elements) {
203             if(element2.attributeValue("id").equals("attr2_1")){
204                 element2.getParent().remove(element2);
205             }
206         }
207         
208         OutputStream outputStream = new FileOutputStream("d:/testXMLFile.xml");
209         XMLWriter  writer = new XMLWriter(outputStream, OutputFormat.createPrettyPrint());
210         writer.write(document);
211         writer.close();
212         
213     }
214     
215     
216     
217     
218     
219     
220 }
View Code

 

查询所有的展示结果:

 

 

 

在测试过程中有如下的错误:

错误1:

 1 错误1:
 2 org.dom4j.IllegalAddException: The node "org.dom4j.tree.DefaultElement@2e5c649 [Element: <一层节点 attributes: []/>]" could not be added to the branch "null" because: Cannot add another element to this Document as it already has a root element of: 根节点
 3     at org.dom4j.tree.AbstractDocument.checkAddElementAllowed(AbstractDocument.java:241)
 4     at org.dom4j.tree.AbstractDocument.add(AbstractDocument.java:203)
 5     at org.dom4j.tree.AbstractDocument.addElement(AbstractDocument.java:173)
 6     at com.sxd.dom4j.test.Dom4jTest.createXML(Dom4jTest.java:52)
 7     at com.sxd.dom4j.test.Dom4jTest.mainTest(Dom4jTest.java:23)
 8     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 9     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
10     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
11     at java.lang.reflect.Method.invoke(Unknown Source)
12     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
13     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
14     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
15     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
16     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
17     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
18     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
19     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
20     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
21     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
22     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
23     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
24     at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
25     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
26     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
27     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
28     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
29     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
30     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
View Code

 

解决方法:

 

 

 

错误2:

 1 报错2:
 2 java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
 3     at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
 4     at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
 5     at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
 6     at com.sxd.dom4j.test.Dom4jTest.queryXMLBySAXReader(Dom4jTest.java:87)
 7     at com.sxd.dom4j.test.Dom4jTest.mainTest(Dom4jTest.java:27)
 8     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 9     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
10     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
11     at java.lang.reflect.Method.invoke(Unknown Source)
12     at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
13     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
14     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
15     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
16     at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
17     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
18     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
19     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
20     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
21     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
22     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
23     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
24     at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
25     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
26     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
27     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
28     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
29     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
30     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
31 Caused by: java.lang.ClassNotFoundException: org.jaxen.NamespaceContext
32     at java.net.URLClassLoader.findClass(Unknown Source)
33     at java.lang.ClassLoader.loadClass(Unknown Source)
34     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
35     at java.lang.ClassLoader.loadClass(Unknown Source)
36     ... 28 more
View Code

 

解决方法:

 

Maven路径:

1 <!--  https://mvnrepository.com/artifact/jaxen/jaxen -->
2         <dependency>
3             <groupId>jaxen</groupId>
4             <artifactId>jaxen</artifactId>
5             <version>1.1.6</version>
6         </dependency>
View Code

 

相关文章
|
9天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
9 0
|
11天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
29天前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
11 0
|
30天前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
9 0
|
26天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
29天前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
27 2
|
30天前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
10 0
|
25天前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
14 1
|
29天前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
30天前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0