<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Marshal&#039;s Blog &#187; java xml</title>
	<atom:link href="http://marshal.easymorse.com/archives/tag/java-xml/feed" rel="self" type="application/rss+xml" />
	<link>http://marshal.easymorse.com</link>
	<description>It&#039;s swap of marshal&#039;s memory.</description>
	<lastBuildDate>Mon, 30 Jan 2012 07:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>java中易于使用的几种xml读取工具</title>
		<link>http://marshal.easymorse.com/archives/2095?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java%25e4%25b8%25ad%25e6%2598%2593%25e4%25ba%258e%25e4%25bd%25bf%25e7%2594%25a8%25e7%259a%2584%25e5%2587%25a0%25e7%25a7%258dxml%25e8%25af%25bb%25e5%258f%2596%25e5%25b7%25a5%25e5%2585%25b7</link>
		<comments>http://marshal.easymorse.com/archives/2095#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:33:37 +0000</pubDate>
		<dc:creator>Marshal</dc:creator>
				<category><![CDATA[计算机技术]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java xml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://marshal.easymorse.com/archives/2095</guid>
		<description><![CDATA[有时候需要简单的xml读取工具，读取子节点或者节点的属性。如果用正则表达式，比较麻烦，而且容易出错。 digester apache commons项目中的digester，可以加入到maven中： &#60;dependency&#62; &#160;&#160;&#160; &#60;groupId&#62;commons-digester&#60;/groupId&#62; &#160;&#160;&#160; &#60;artifactId&#62;commons-digester&#60;/artifactId&#62; &#160;&#160;&#160; &#60;version&#62;2.0&#60;/version&#62; &#60;/dependency&#62; &#160; 代码编写很简单，比如有如下javabean： package mypackage; public class Foo { public void addBar(Bar bar); public Bar findBar(int id); public Iterator getBars(); public String getName(); public void setName(String name); } package mypackage; public class Bar { public int getId(); public void setId(int id); public String getTitle(); [...]]]></description>
			<content:encoded><![CDATA[<p>有时候需要简单的xml读取工具，读取子节点或者节点的属性。如果用正则表达式，比较麻烦，而且容易出错。</p>
<h3>digester</h3>
<p>apache commons项目中的digester，可以加入到maven中：</p>
<blockquote><p>&lt;dependency&gt;     <br />&#160;&#160;&#160; &lt;groupId&gt;commons-digester&lt;/groupId&gt;      <br />&#160;&#160;&#160; &lt;artifactId&gt;commons-digester&lt;/artifactId&gt;      <br />&#160;&#160;&#160; &lt;version&gt;2.0&lt;/version&gt;      <br />&lt;/dependency&gt;</p>
<p>&#160;</p>
</blockquote>
<p> <span id="more-2095"></span>
<p>代码编写很简单，比如有如下javabean：</p>
<blockquote><pre>  package mypackage;
  public class Foo {
    public void addBar(Bar bar);
    public Bar findBar(int id);
    public Iterator getBars();
    public String getName();
    public void setName(String name);
  }

  package mypackage;
  public class Bar {
    public int getId();
    public void setId(int id);
    public String getTitle();
    public void setTitle(String title);
  }</pre>
<p>&#160;</p>
</blockquote>
<p>现在可以将如下xml文档转为javabean的实例：</p>
<blockquote>
<pre>&lt;foo name=&quot;The Parent&quot;&gt;
    &lt;bar id=&quot;123&quot; title=&quot;The First Child&quot;/&gt;
    &lt;bar id=&quot;456&quot; title=&quot;The Second Child&quot;/&gt;
  &lt;/foo&gt;</pre>
<p>&#160;</p>
</blockquote>
<p>代码片段：</p>
<blockquote>
<pre>  Digester digester = new Digester();
  digester.setValidating(false);
  digester.addObjectCreate(&quot;foo&quot;, &quot;mypackage.Foo&quot;);
  digester.addSetProperties(&quot;foo&quot;);
  digester.addObjectCreate(&quot;foo/bar&quot;, &quot;mypackage.Bar&quot;);
  digester.addSetProperties(&quot;foo/bar&quot;);
  digester.addSetNext(&quot;foo/bar&quot;, &quot;addBar&quot;, &quot;mypackage.Bar&quot;);
  Foo foo = (Foo) digester.parse();</pre>
<p>&#160;</p>
</blockquote>
<p>参见文档：</p>
<blockquote>
<p><a href="http://commons.apache.org/digester/commons-digester-2.0/docs/api/org/apache/commons/digester/package-summary.html">http://commons.apache.org/digester/commons-digester-2.0/docs/api/org/apache/commons/digester/package-summary.html</a></p>
</blockquote>
<h3>xstream</h3>
<p>也是类似的工具，在<a href="http://marshal.easymorse.com/archives/1715" title="android下通过xstream解析xml格式信息">android下通过xstream解析xml格式信息</a>中已经演示了在android中的是使用。网址：</p>
<blockquote>
<p><a href="http://xstream.codehaus.org/">http://xstream.codehaus.org/</a></p>
</blockquote>
<p>简单的官方教程：</p>
<blockquote>
<p><a href="http://xstream.codehaus.org/tutorial.html">http://xstream.codehaus.org/tutorial.html</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://marshal.easymorse.com/archives/2095/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

