导航:首页 > 编程语言 > javacdataxml

javacdataxml

发布时间:2025-09-19 05:32:50

‘壹’ 瓒呰秺XML鍜孞SON锛歒AML锛孞ava寮鍙戜汉锻樼殑鏂伴夋嫨

銆銆 涓筼ava寮鍙戣呭筜AML鏂囦欢镙煎纺锅氢竴涓楂樼骇浠嬬粛 镓惧嚭瀹冧笌XML鍜孞SON镄勪笉钖屼箣澶 骞舵楠屽畠镄勪紭瓒婃у拰缂洪櫡

銆銆镓链夊姩镐佽瑷锛埚俣uby Groovy Python绛夛级鍙婂叾鐩稿叧镄勬嗘灦锛埚俣uby on rails锛夌栌瀹朵簤楦 灏界¢槄璇绘湰鏂囩殑澶ч儴鍒呙ava寮鍙戣呮疮澶╃殑澶у氭暟宸ヤ綔閮芥槸澶勭悊绾绮圭殑java 涓旀湭𨱒ュ氩勾閮藉皢濡傛 浣呜繖骞朵笉镒忓懗镌浠栦滑涓嶈兘瀛︿範鏂扮殑鐭ヨ瘑 鍦ㄤ粬浠镄勫叺鍣ㄥ簱涓娣诲姞鏂扮殑鍏靛櫒 链鏂囦粙缁峐AML锛圷AML涓嶆槸镙囱拌瑷镄勭亩鍐欙级鏂囦欢镙煎纺锛堜娇鐢≧uby on rails妗嗘灦杩涜岃茶В 锲犱负瀹冩墍链夌殑閰岖疆鏂囦欢閮芥槸浣跨敤镄刌AML锛変互鍙婂畠涓岭ML鍜孞SON镄勫尯鍒 链钖庤ㄨ轰简YAML镄勪紭锷垮拰缂虹偣

銆銆 绌烘牸缂╄繘鍜孞SON阃夐”

銆銆YAML鏂囦欢镙煎纺涓昏侀泦涓浜庣┖镙肩缉杩涚殑姒傚康 瀹幂敤浜庢寚鍑烘暟鎹镄勫眰娆$粨鏋 钬 钥屼笉鏄浣跨敤XML宓屽楁爣璁版垨JSON镄勫ぇ𨰾鍙凤纸{}锛夊拰鏂规嫭鍙凤纸[]锛 瀹为檯涓 瀹冩槸JSON镄勪竴涓瓒呴泦 锲犳 鍦ㄤ娇鐢ㄧ殑镞跺 浣犲彲鑳介渶瑕侀噰鐢↗SON椋庢牸镄勮娉曟潵璺冲嚭绌烘牸娴 瀹幂殑鍒涘嬩汉灏嗗叾褰㈠逛负 涓烘墍链夌紪绋嬭瑷鎻愪緵浜烘у寲镄勬暟鎹搴忓垪鍖栨爣鍑 浠ユ垜镄勭粡楠屾潵鐪 鍏堕吨镣规槸浜烘у寲 涓嬮溃鏄涓涓浣跨敤绌烘牸缂╄繘镄刌AML镙蜂緥 鍒涘缓YAML鏂囦欢镞朵笉瀹滀娇鐢ㄥ浐瀹氩藉害瀛椾綋 锲犱负绌烘牸鏄寰埚叧阌镄 锛埚弬钥冧晶杈规爮 YAML鍜屾爣绛

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height: ponents: JTextArea: name: textArea text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that JButton: name: button text: Button

銆銆 渚ц竟镙 YAML鍜屾爣绛 锘轰簬绌烘牸缂╄繘镄勪换涓鏂囦欢镙煎纺链甯歌佺殑闂棰树箣涓鏄濡备綍瑙i喷镙囩 鍦ㄨ繖涓猋AML渚嫔瓙涓 绛旀堢浉褰撶亩鍗 瀹冧笉鏀鎸佹爣绛 浣跨敤镙囩惧瓧绗︾缉杩涗唬镟跨┖镙煎皢浼氩艰嚧澶勭悊寮傚父

銆銆闅忎綘锽沧 浣犲彲浠ュ湪浠讳綍鑺傜偣浣跨敤JSON椋庢牸璇娉曟垨娣峰悎璇娉 渚嫔 涓婇溃镄勪緥瀛愬彲鏀逛负

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height: ponents: JTextArea: name: textArea text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that JButton: {name: button text: Button } #JSON椋庢牸璇娉

銆銆鍦ㄥ簳灞傝妭镣癸纸鍗冲畠浠娌℃湁瀛愯妭镣 姝e备綘鐚沧祴镄勯偅镙 浜曞彿阌鍦╕AML涓鏄鐢ㄦ潵娉ㄩ喷镄勶级鍒囨崲浣跨敤JSON椋庢牸璇娉曟樉寰楃壒鍒链夌敤

銆銆 YAML缁撴瀯缁勪欢

銆銆鍓嶉溃宸茬粡鐪嬩简涓涓绠鍗旷殑YAML渚嫔瓙 涓嬮溃璁╂垜浠涓璧锋潵浜呜В涓涓媃AML镄勭粨鏋 hash list 鍜宐lock literal

銆銆 hash锛堟暎鍒楋级

銆銆阃氲繃缂╄繘瀛愭靛拰鍦ㄥ叧阌瀛椾笌鍊间箣闂翠娇鐢ㄥ啋鍙凤纸:锛夋潵鍒嗗壊瀹炵幇hash镄勫垱寤 濡

銆銆JFrame: defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame width: height:

銆銆杩樻湁涓绉嶆柟娉曞氨鏄浣跨敤涓嶫SON鍏煎圭殑澶ф嫭鍙疯娉曪纸{}锛夎娉 姣忎竴瀵瑰叧阌瀛/鍊间娇鐢ㄩ楀彿锛 锛夊垎鍓 濡

銆銆JFrame: {defaultCloseOperation: JFrame EXIT_ON_CLOSE title: Test Frame

銆銆width: height: }

銆銆 list锛堟竻鍗曪级

銆銆阃氲繃鍦ㄦ疮涓猯ist鍏幂礌鍓嶆斁涓涓鍑忓彿锛 锛夋潵鍒涘缓list 涓庣┖镙肩缉杩涗竴璧锋瀯鎴愪简YAML镄勫熀鐭

銆銆ponents: JTextArea Jbutton

銆銆杩樻湁涓绉嶆柟娉曞氨鏄浣跨敤JSON鍏煎圭殑鏂规嫭鍙凤纸[]锛夎娉 濡

銆銆ponents: [JTextArea JButton]

銆銆 block literal锛堟枃瀛楀潡锛

銆銆杩欐槸YAML镄勪寒镣 鐗瑰埆鏄涓岭ML鐩告瘆 瀹幂殑CDATA鏄惧缑鐩稿綋绠闄 block literal鍙浠ュ皢澶у潡鏂囨湰缁呜嚧鍦版彃鍏ユ枃浠朵腑 浣犲彲浠ヤ娇鐢ㄧ珫绾匡纸|锛夋寚浠ゅ湪浣犵殑鏂囨湰涓淇濈暀鏂拌 濡

銆銆text: | This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that

銆銆YAML缂栬疟鍣ㄥ皢浼氢粠绗涓琛岀殑绗涓涓鏂囨湰瀛楃﹀紑濮嬬紪璇戯纸骞朵涪鎺夋墍链夌殑缂╄繘绌烘牸锛 浣嗘槸浼氩湪浣犵殑鏂囨湰涓淇濈暀鏂拌

銆銆鍙﹀ 浣犺缮鍙浠ヤ娇鐢ㄥぇ浜庣﹀彿锛>锛夊憡璇塝AML缂栬疟鍣ㄧ粰镓链夋柊琛屽姞涓婃浔绾 骞跺皢杈揿叆镄勬枃链浣滀负涓涓闀胯屽勭悊

銆銆text: > This is a really long text that spans multiple lines (but preserves new lines) It does not need to be escaped with special brackets CDATA tags or anything like that

銆銆闄や简杩欎袱涓鎸囦护涔嫔 浣犺缮鍙浠ヤ娇鐢ㄧ珫绾垮拰锷犲彿锛坾+锛 瀹幂粰浣崭簬鍓嶉溃镄勭┖镙煎姞涓婃浔绾 淇濈暀鏂拌屽拰链灏剧殑绌烘牸 杩桦彲浠ヤ娇鐢ㄥぇ浜庡彿鍜屽噺鍙凤纸> 锛 瀹幂粰镓链夌殑绌烘牸锷犱笂𨱒$汗

銆銆 YAML VS XML鍜孞SON

銆銆姝e备綘浠庡墠闱渚嫔瓙涓娓呮氩湴鐪嫔埌闾f牱 YAML娌℃湁XML闾d箞鍟板棪浜 澶ч儴鍒哬AML鏂囦欢鍐呭瑰氨鏄鐪熷疄镄勬暟鎹 娌℃湁浜嗘棤绌峰敖镄勬墦寮鍜屽叧闂镙囱板垪琛 鍦╔ML涓 杩欎簺镙囱板线寰姣斿畠浠鎻忚堪镄勬暟鎹杩桦ぇ YAML镟撮傚悎浣犻渶瑕佹坠宸ョ淮鎶ょ殑鏁版嵁鏂囦欢绫诲瀷

銆銆YAML娌℃湁鎻愪緵鏂规堟垨DTD姒傚康 锲犳ゆ棤娉曢獙璇佹枃浠舵牸寮忔槸钖︾﹀悎浣犵殑棰勬湡 XML镄勫暟鍡︿篃链夊畠镄勪环鍊 浣嗘荤殑璇存潵鏄锲犱负XML镄勬垚镡熶娇瀹冨叿链夊ぇ閲忛濆栫殑宸ュ叿𨱒ラ獙璇佸畠镄勬牸寮 钥孻AML杩樻病链

銆銆JSON涔熼傚悎涓庝换浣曟暟鎹 瀹冧富瑕侀溃钖戞彁楂樻ц兘鍜屾枃浠跺昂瀵哥殑澶у皬 锲犱负瀹冨嚑涔庝笉浣跨敤绌烘牸鍜屽叧闂镙囩 铹惰 JSON鏂囦欢镄勫唴瀹瑰炲姞浜嗗嶆潅镐 瀹幂殑鍏抽棴镙囱瘑灏辫薄涓嫔湴镫变竴镙 杩椤氨鏄疛avaFx浠g爜锛埚畠锘轰簬JSON锛変腑鍙瑙佺殑链䦅涜嫤镄勪简 鍦ㄦ暟鎹鏂囦欢涓 浣跨敤UI缁撴瀯浣跨粨鏋沧洿澶嶆潅 鍏跺嶆潅绋嫔害鍑犱箮浣挎枃浠跺彉寰楁棤娉旷悊瑙

銆銆镆ョ湅镄凧avaFx绀轰緥浠g爜锛堢偣鍑 Edit this page 阈炬帴锛 璇风壒鍒鐣椤绩瀹冩槸濡备綍缁撴潫镄

銆銆

銆銆} } } } ] } } center: bookPanel }

銆銆鎺哄拰浜唟}缁撴瀯鍜孾]娓呭崟 浣垮缑镓嫔伐缁存姢澶у瀷镄凧SON椋庢牸镄勬枃浠跺彉寰楃浉褰揿汹闅 YAML浣跨敤瀹幂殑绌烘牸缂╄繘鏂规硶宸у椤湴瑙e喅浜呜繖涓闂棰 褰撶劧 镞犺轰綍镞 浣犻兘鍙浠ュ垏鎹㈠埌JSON椋庢牸镄勮娉曪纸濡傚湪搴曞眰鑺傜偣锛

銆銆瑙f瀽YAML鏂囦欢链甯哥敤镄凧ava搴撴槸JvYAML锛堬级 JRuby锛埚湪Java VM涓婅繍琛屽姩镐佽瑷镄凴uby鐗堟湰锛夊湪瀹幂殑Ruby on Rails妗嗘灦涓镄勮繘鍑哄彛浣跨敤JvYAML JvYAML鎻愪緵浜嗘枃浠朵竴鑸澶勭悊镄勫姛鑳斤纸鍦ㄥ墠闱㈤偅涓渚嫔瓙涓 瀹冭繑锲炰简涓涓镙囧嗳Java瀛楃︿覆 Long Map鍜孡ist瀵硅薄镄勫祵濂椾綋绯荤粨鏋勶级 浣跨敤闱欐乨ump()鏂规硶淇濆瓨涓烘枃浠 铹跺悗浣跨敤闱欐乴oad()鏂规硶杞藉叆 渚嫔

銆銆

銆銆YAML mp(Object data Writer output); Object data = YAML load(Reader io);

銆銆鍙傝冧晶杈规爮 锘轰簬YAML镄勫紑婧愰”鐩浜呜В鍏充簬锘轰簬YAML镄勫紑婧愰”鐩淇℃伅 浠ュ强濡备綍鍦↗ava涓瑁呭叆涓涓璇存槑镄刄I

銆銆 渚ц竟镙 锘轰簬YAML镄勫紑婧愰”鐩 璇峰师璋呮垜鍦ㄨ繖閲屽帤鑴哥毊鍦颁粙缁嶆垜浠镊宸辩殑寮婧愰”鐩 褰撴垜鐪熺殑涓岖煡阆挞櫎浜呙Ruby澶栧叾浠栫殑锘轰簬YAML镄勫紑婧愰”鐩 JRuby镄凴uby on Rails妗嗘灦瀹炵幇涓ラ吨渚濊禆YAML 钥屼笉鏄疿ML鎴朖SON 鐪嬬湅鎴戠殑Java Builder搴揿惂锛堬级 瀹冨埄鐢╕AML鏂囦欢鎻愪緵浜嗕竴绉嶆柟娉曞畾涔夊睆骞曟带鍒 甯冨眬 浜嬩欢绾胯矾鍜屾暟鎹缁戝畾 浠ュ疄鐜板皢璇存槑UI瑁呭叆Java

銆銆瀹为檯涓 YAML鏂囦欢鐪熺殑闱炲父绠鍗 鐢氲呖浣犲彲浠ヤ娇鐢ㄤ换浣旷殑鏂囨湰缂栬緫鍣ㄩ兘鍙浠ョ淮鎶ゅ畠 浣嗘湁浜涗笓闂ㄧ殑鏂囨湰缂栬緫鍣ㄦ彁渚涗简璇娉曞姞浜锷熻兘 杩椤圭淮鎶ゅ伐浣滃緢链夊府锷 瀵笶clipse钥岃█ 链塃clipse YAML editor锛堬级 瀵筃etBeans钥岃█ 浣犲彲浠ヤ娇鐢ㄦ潵镊猂uby鍖咃纸锛夌殑YAML缂栬緫鍣 铹惰 鍦∟etBeans 涓镄刌AML缂栬緫鍣ㄥ苟娌℃湁浠涔堢敤澶 瀹冨彧鏀鎸乊AML寰埚皬镄勪竴涓瀛愰泦锛堜緥濡 瀹冧笉鏀鎸乥lock literal锛 甯屾湜鍦∟etBeans 涓镄刌AML缂栬緫鍣ㄨВ鍐充简杩欎釜闂棰

銆銆鎴戞病链夋満浼氭祴璇旾ntelliJ IDEA 浣嗘垜鎺ㄦ祴瀹幂殑Ruby on Rails鎻掍欢锛+IDEA+Ruby+Plugin锛夐梼甯︿简YAML缂栬緫鍣

銆銆 娣诲姞YAML宸ュ叿

lishixin/Article/program/Java/JSP/201311/19416

‘贰’ java中xml文件格式中的<>怎么打

好吧,给自动转换了,“&=l=t=;=”“&=g=t=;=” 第一个是小写的L。把=号全去掉。因为不加=会被自动转换掉

‘叁’ java编程中Properties类的具体作用和使用!

如果不熟悉 java.util.Properties类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的。(如清单 1 所示)。最近更新的java.util.Properties 类现在提供了一种为程序装载和存储设置的更容易的方法: loadFromXML(InputStreamis) 和 storeToXML(OutputStream os, String comment) 方法。

一下是详细的说明,希望能给大家带来帮助。

清单 1. 一组属性示例

foo=bar
fu=baz

将清单 1 装载到 Properties 对象中后,您就可以找到两个键( foo 和 fu )和两个值( foo 的 bar 和 fu 的baz )了。这个类支持带 \u 的嵌入 Unicode 字符串,但是这里重要的是每一项内容都当作 String 。

清单2 显示了如何装载属性文件并列出它当前的一组键和值。只需传递这个文件的 InputStream 给 load()方法,就会将每一个键-值对添加到 Properties 实例中。然后用 list() 列出所有属性或者用 getProperty()获取单独的属性。

清单 2. 装载属性

import java.util.*;
import java.io.*;

public class LoadSample {
public static void main(String args[]) throws Exception {
Properties prop = new Properties();
FileInputStream fis =
new FileInputStream("sample.properties");
prop.load(fis);
prop.list(System.out);
System.out.println("\nThe foo property: " +
prop.getProperty("foo"));
}
}

运行 LoadSample 程序生成如清单 3 所示的输出。注意 list() 方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。Properties 类在一个散列表(hashtable,事实上是一个 Hashtable 子类)中储存一组键-值对,所以不能保证顺序。

清单 3. LoadSample 的输出

-- listing properties --
fu=baz
foo=bar

The foo property: bar

XML 属性文件
这里没有什么新内容。 Properties 类总是这样工作的。不过,新的地方是从一个 XML 文件中装载一组属性。它的 DTD 如清单 4 所示。

清单 4. 属性 DTD

<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for properties -->
<!ELEMENT properties ( comment?, entry* ) >
<!ATTLIST properties version CDATA #FIXED "1.0">
<!ELEMENT comment (#PCDATA) >
<!ELEMENT entry (#PCDATA) >
<!ATTLIST entry key CDATA #REQUIRED>

如果不想细读 XML DTD,那么可以告诉您它其实就是说在外围 <properties> 标签中包装的是一个<comment> 标签,后面是任意数量的 <entry> 标签。对每一个 <entry>标签,有一个键属性,输入的内容就是它的值。清单 5 显示了 清单 1中的属性文件的 XML 版本是什么样子的。

清单 5. XML 版本的属性文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM " http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Hi</comment>
<entry key="foo">bar</entry>
<entry key="fu">baz</entry>
</properties>

如果清单 6 所示,读取 XML 版本的 Properties 文件与读取老格式的文件没什么不同。

清单 6. 读取 XML Properties 文件

import java.util.*;
import java.io.*;

public class LoadSampleXML {
public static void main(String args[]) throws Exception {
Properties prop = new Properties();
FileInputStream fis =
new FileInputStream("sampleprops.xml");
prop.loadFromXML(fis);
prop.list(System.out);
System.out.println("\nThe foo property: " +
prop.getProperty("foo"));
}
}

关于资源绑定的说明
虽然 java.util.Properties 类现在除了支持键-值对,还支持属性文件作为 XML 文件,不幸的是,没有内置的选项可以将ResourceBundle 作为一个 XML 文件处理。是的, PropertyResourceBundle 不使用 Properties对象来装载绑定,不过装载方法的使用是硬编码到类中的,而不使用较新的 loadFromXML() 方法。

运行清单 6 中的程序产生与原来的程序相同的输出,如 清单 2所示。

保存 XML 属性
新的 Properties 还有一个功能是将属性存储到 XML 格式的文件中。虽然 store() 方法仍然会创建一个类似 清单 1所示的文件,但是现在可以用新的 storeToXML() 方法创建如 清单 5 所示的文件。只要传递一个 OutputStream和一个用于注释的 String 就可以了。清单 7 展示了新的 storeToXML() 方法。

清单 7. 将 Properties 存储为 XML 文件

import java.util.*;
import java.io.*;

public class StoreXML {
public static void main(String args[]) throws Exception {
Properties prop = new Properties();
prop.setProperty("one-two", "buckle my shoe");
prop.setProperty("three-four", "shut the door");
prop.setProperty("five-six", "pick up sticks");
prop.setProperty("seven-eight", "lay them straight");
prop.setProperty("nine-ten", "a big, fat hen");
FileOutputStream fos =
new FileOutputStream("rhyme.xml");
prop.storeToXML(fos, "Rhyme");
fos.close();
}
}

运行清单 7 中的程序产生的输出如清单 8 所示。

清单 8. 存储的 XML 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM " http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Rhyme</comment>
<entry key="seven-eight">lay them straight</entry>
<entry key="five-six">pick up sticks</entry>
<entry key="nine-ten">a big, fat hen</entry>
<entry key="three-four">shut the door</entry>
<entry key="one-two">buckle my shoe</entry>
</properties>
在这里改了一个例子:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* 实现properties文件的读取
* @author haoxuewu
*/
public class Test {
public static void main(String[] args) {
try {
long start = System.currentTimeMillis();
InputStream is = new FileInputStream("conf.properties");
Properties p = new Properties();
p.load(is);
is.close();
System.out.println("SIZE : " + p.size());
System.out.println("homepage : " + p.getProperty("homepage"));
System.out.println("author : " + p.getProperty("author"));
System.out.println("school : " + p.getProperty("school"));
long end = System.currentTimeMillis();
System.out.println("Cost : " + (end - start));
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
conf.properties
# Configuration file
homepage = http://www.blogjava.net/haoxuewu
author = bbflyerwww
school = jilinjianzhugongchengxueyuan

Result
SIZE:3
homepage : http://www.blogjava.net/haoxuewu
author : bbflyerwww
school : jilinjianzhugongchengxueyuan

‘肆’ XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个

warning: [deprecation] XppDriver(com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer) in com.thoughtworks.xstream.io.xml.XppDriver has been deprecated

已经过时的方法,所以,不会调用此方法。

阅读全文

与javacdataxml相关的资料

热点内容
程序员8个算法题 浏览:400
php题库系统 浏览:216
王牌战争文明重启选什么服务器 浏览:649
简述对称加密法 浏览:652
c语言数学编程 浏览:983
F1B命令 浏览:629
cs命令快捷键 浏览:851
阿里云购买服务器如何用现金支付 浏览:684
pythontime等待 浏览:983
单片机串行通信方式 浏览:493
android表格demo 浏览:273
安卓怎么让相册不显示网页 浏览:309
php文件系统源码 浏览:722
易信java 浏览:495
北仑二级压缩螺杆机 浏览:58
加密路线免费入口 浏览:755
计算器程序员是干嘛的 浏览:364
数控编程里fo是啥键 浏览:669
javacdataxml 浏览:958
本机tcp服务器地址 浏览:440