xmlを読み込みJavaオブジェクトに変換
5678 ワード
XMLは、データを転送および格納するように設計されている.
主な用途:1.XMLはHTMLからデータを分離する
HTMLドキュメントにダイナミックデータを表示する必要がある場合は、データが変更されるたびにHTMLを編集するのに多くの時間がかかります.XMLにより、データを独立したXMLファイルに格納することができる.これにより、HTMLを使用してレイアウトや表示に専念し、下位データの変更にHTMLを変更する必要がなくなります.JavaScriptを数行使用すると、外部XMLファイルを読み込み、HTMLのデータ内容を更新できます.
2.XMLデータ共有の簡略化
実際の世界では、コンピュータシステムとデータは互換性のないフォーマットを使用してデータを格納します.XMLデータは、純粋なテキスト形式で格納されるため、ソフトウェアおよびハードウェアとは独立したデータ格納方法が提供される.これにより、異なるアプリケーションで共有できるデータの作成が容易になります.
3.XML簡略化データ転送XMLにより,互換性のないシステム間で容易にデータを交換できる.開発者にとって、最も時間のかかる課題の1つは、インターネット上の互換性のないシステム間でデータを交換することです.この複雑さは、様々な互換性のないアプリケーションによってデータを読み取ることができるため、XMLでデータを交換することによって低減される.
4.XML簡略化プラットフォームの変更を新しいシステム(ハードウェアまたはソフトウェアプラットフォーム)にアップグレードするには、常に時間がかかる.大量のデータを変換しなければならないため、互換性のないデータはしばしば失われる.XMLデータはテキスト形式で保存される.これにより、XMLはデータを損失することなく、新しいオペレーティングシステム、新しいアプリケーション、または新しいブラウザに拡張またはアップグレードしやすくなる.
5.XMLは、ハードウェア、ソフトウェア、アプリケーションとは独立したXMLにより、データをより便利にし、より便利にします.HTMLページだけでなくXMLデータソースからもアクセスできる、さまざまなアプリケーションでデータにアクセスできます.XMLを使用すると、さまざまな読み取りデバイス(手持ちのコンピュータ、音声デバイス、ニュースリーダーなど)を使用できます.また、視覚障害者やその他の障害者にも使用できます.
コード:
users.xml
ReadXmlToJava.java
user.java
出力:
ここではSAXReaderを用いてusersを読み出す.xml.users.xmlにはユーザーの情報が格納されており、各「user」要素の属性はエンティティJavaクラスのuserに対応している.JAvaのプロパティです.
SAXReaderはdom 4 jの一つのクラスであり、SAXReaderは主にXMLファイルの解析に用いられ、現在比較的流行しているxmlソリューションである.
dom 4 jは非常に優れたJava XML APIであり、XMLファイルを読み書きするために使用され、性能に優れ、機能が強く、極端に使いやすいという特徴があり、同時にオープンソースのソフトウェアでもある.
主な用途:1.XMLはHTMLからデータを分離する
HTMLドキュメントにダイナミックデータを表示する必要がある場合は、データが変更されるたびにHTMLを編集するのに多くの時間がかかります.XMLにより、データを独立したXMLファイルに格納することができる.これにより、HTMLを使用してレイアウトや表示に専念し、下位データの変更にHTMLを変更する必要がなくなります.JavaScriptを数行使用すると、外部XMLファイルを読み込み、HTMLのデータ内容を更新できます.
2.XMLデータ共有の簡略化
実際の世界では、コンピュータシステムとデータは互換性のないフォーマットを使用してデータを格納します.XMLデータは、純粋なテキスト形式で格納されるため、ソフトウェアおよびハードウェアとは独立したデータ格納方法が提供される.これにより、異なるアプリケーションで共有できるデータの作成が容易になります.
3.XML簡略化データ転送XMLにより,互換性のないシステム間で容易にデータを交換できる.開発者にとって、最も時間のかかる課題の1つは、インターネット上の互換性のないシステム間でデータを交換することです.この複雑さは、様々な互換性のないアプリケーションによってデータを読み取ることができるため、XMLでデータを交換することによって低減される.
4.XML簡略化プラットフォームの変更を新しいシステム(ハードウェアまたはソフトウェアプラットフォーム)にアップグレードするには、常に時間がかかる.大量のデータを変換しなければならないため、互換性のないデータはしばしば失われる.XMLデータはテキスト形式で保存される.これにより、XMLはデータを損失することなく、新しいオペレーティングシステム、新しいアプリケーション、または新しいブラウザに拡張またはアップグレードしやすくなる.
5.XMLは、ハードウェア、ソフトウェア、アプリケーションとは独立したXMLにより、データをより便利にし、より便利にします.HTMLページだけでなくXMLデータソースからもアクセスできる、さまざまなアプリケーションでデータにアクセスできます.XMLを使用すると、さまざまな読み取りデバイス(手持ちのコンピュータ、音声デバイス、ニュースリーダーなど)を使用できます.また、視覚障害者やその他の障害者にも使用できます.
コード:
users.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<region city="chongqing">
<user loginName="xiaohong" password="321321" address="NO.1"/>
<user loginName="xiaoming" password="321321" address="NO.2"/>
<user loginName="daming" password="321321" address="NO.3"/>
</region>
<region city="dalian">
<user loginName="haige" password="321321" address="NO.4"/>
<user loginName="rg" password="321321" address="NO.4"/>
<user loginName="hg" password="321321" address="NO.5"/>
<user loginName="ff" password="321321" address="NO.6"/>
<user loginName="ll" password="321321" address="NO.7"/>
</region>
</root>
ReadXmlToJava.java
package test.fortest;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import test.model.User;
public class ReadXmlToJava {
public static void main(String args[]) {
Map<String, User> usersMap = new HashMap<String, User>();
SAXReader reader = new SAXReader();
String appFilePath = "D:"+File.separator + "ForLearn" + File.separator +
"Example" + File.separator + "mavenEx" + File.separator + "exampleF" + File.separator +
"src"+ File.separator + "main" + File.separator + "webapp" + File.separator +
"WEB-INF" + File.separator + "users.xml";
try {
// xml 。
Document document = reader.read(new File(appFilePath));
// 。
Element rootElement = document.getRootElement();
// 。
Iterator cityElements = rootElement.elementIterator();
while(cityElements.hasNext()) {
Element cityElement = (Element) cityElements.next();
String city = cityElement.attributeValue("city");
Iterator userElements = cityElement.elementIterator();
while(userElements.hasNext()) {
Element userElement = (Element) userElements.next();
User user = new User();
user.setLoginName(userElement.attributeValue("loginName"));
user.setPassword(userElement.attributeValue("password"));
user.setAddress(userElement.attributeValue("address"));
usersMap.put(userElement.attributeValue("loginName"), user);
}
}
System.out.println(appFilePath);
System.out.println("usersMap size : " + usersMap.size());
User user = usersMap.get("xiaohong");
System.out.println("loginName : " + user.getLoginName() + " "
+ "password : " + user.getPassword() + " "
+ "address : " + user.getAddress());
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
user.java
package test.model;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "users", schema = "public")
public class User extends AbsEntity implements IEntity{
private String loginName;
private String password;
private String address;
@ManyToOne
private Role role;
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
@Deprecated
public String getDisplayString() {
return "this is a user";
}
}
出力:
D:\ForLearn\Example\mavenEx\exampleF\src\main\webapp\WEB-INF\users.xml
usersMap size : 8
loginName : xiaohong password : 321321 address : NO.1
ここではSAXReaderを用いてusersを読み出す.xml.users.xmlにはユーザーの情報が格納されており、各「user」要素の属性はエンティティJavaクラスのuserに対応している.JAvaのプロパティです.
SAXReaderはdom 4 jの一つのクラスであり、SAXReaderは主にXMLファイルの解析に用いられ、現在比較的流行しているxmlソリューションである.
dom 4 jは非常に優れたJava XML APIであり、XMLファイルを読み書きするために使用され、性能に優れ、機能が強く、極端に使いやすいという特徴があり、同時にオープンソースのソフトウェアでもある.