數(shù)據(jù)加載中……
          JAVA XML 解析之一(準(zhǔn)備篇)
          2008年4月21日  Edited By DingDangXiaoMa
          關(guān)于XML 在JAVA中的應(yīng)用,相關(guān)技術(shù)點DOM ,SAX ,JDOM 及DOM4j 
          討論可以參考:http://java.chinaitlab.com/XMLBeans/717370_2.html
          另外可以參考:http://www.javaresearch.org/article/1181.htm
          這兩網(wǎng)址,都有XML的解析的例子。現(xiàn)把他們的例子,實際的跑了一下,分別對四種技術(shù)的例子總結(jié)如下。
          javaresearch 上的例子。
          前提準(zhǔn)備文件:.xml .dtd ,.xsl
          SutInfo.xml
          <?xml version="1.0"?>
          <?xml-stylesheet href="xsl\StuInfo.xsl" type="text/xsl"?>
          <!DOCTYPE LIT:StuInfo SYSTEM "dtd\student.dtd">
          <LIT:StuInfo xmlns:LIT="http://www.lit.edu.cn/student/">
              
          <LIT:student>
                  
          <LIT:name>bigmouse</LIT:name>
                  
          <LIT:sex>male</LIT:sex>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>math</LIT:lessonName>
                      
          <LIT:lessonScore>60</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>Englist</LIT:lessonName>
                      
          <LIT:lessonScore>59</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>autoCAD</LIT:lessonName>
                      
          <LIT:lessonScore>80</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>SCM</LIT:lessonName>
                      
          <LIT:lessonScore>90</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>mechanics</LIT:lessonName>
                      
          <LIT:lessonScore>61</LIT:lessonScore>
                  
          </LIT:lesson>
              
          </LIT:student>
              
          <LIT:breakLine />
              
          <LIT:student>
                  
          <LIT:name>coco</LIT:name>
                  
          <LIT:sex>female</LIT:sex>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>math</LIT:lessonName>
                      
          <LIT:lessonScore>90</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>Englist</LIT:lessonName>
                      
          <LIT:lessonScore>95</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>C++</LIT:lessonName>
                      
          <LIT:lessonScore>80</LIT:lessonScore>
                  
          </LIT:lesson>
                  
          <LIT:lesson>
                      
          <LIT:lessonName>Java</LIT:lessonName>
                      
          <LIT:lessonScore>85</LIT:lessonScore>
                  
          </LIT:lesson>
              
          </LIT:student>
              
          <LIT:breakLine />
              
          <LIT:master>&masterName;
              
          </LIT:master>
          </LIT:StuInfo>
          這個xml中的前幾行中,有xsl及.dtd聲明。一個是樣式,一個是doctype聲明。
          student.dtd
          <!ELEMENT LIT:StuInfo ((LIT:student, LIT:breakLine)*, LIT:master)>
          <!ATTLIST LIT:StuInfo xmlns:LIT CDATA #REQUIRED>
          <!ELEMENT LIT:student (LIT:name, LIT:sex, LIT:lesson*)>
          <!ELEMENT LIT:name (#PCDATA)>
          <!ELEMENT LIT:sex (#PCDATA)>
          <!ELEMENT LIT:lesson (LIT:lessonName, LIT:lessonScore)>
          <!ELEMENT LIT:lessonName (#PCDATA)>
          <!ELEMENT LIT:lessonScore (#PCDATA)>
          <!ELEMENT LIT:breakLine EMPTY>
          <!ELEMENT LIT:master (#PCDATA)>
          <!ENTITY masterName SYSTEM "master.txt">
          StuInfo.xsl
          <?xml version="1.0"?>
          <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:LIT
          ="http://www.lit.edu.cn/student/"
                  version
          ="1.0">
              
          <xsl:template match="LIT:StuInfo">
                  
          <html>
                      
          <head>
                          
          <title>Student Information</title>
                      
          </head>
                      
          <body>
                          
          <xsl:apply-templates select="*"/>
                      
          </body>
                  
          </html>
              
          </xsl:template>

              
          <xsl:template match="LIT:student">
                  
          <li>Name:<xsl:value-of select="LIT:name"/></li>
                  
          <li>Sex:<xsl:value-of select="LIT:sex"/></li>
                  
          <xsl:for-each select="LIT:lesson">
                      
          <li>Lesson:<xsl:value-of select="LIT:lessonName"/>(<xsl:value-of select="LIT:lessonScore"/>)</li>
                  
          </xsl:for-each>
              
          </xsl:template>

              
          <xsl:template match="LIT:breakLine">
                  
          <hr/>
              
          </xsl:template>

              
          <xsl:template match="master">
                  
          <xsl:copy-of select="*"/>
              
          </xsl:template>

          </xsl:stylesheet>
          上面就是所有的配置文件了。這些文件可放在web工程的根目錄下面。也可以放在webRoot/xml/文件夾下。我就是放到這個文件夾下的,能過web方式來訪問.xml文件的,當(dāng)然了,也可以通過絕對路徑來訪問這個資源。
          在下面的程序中,可能會遇到不配置上面的文件,也可在控制臺下訪問.xml打印出相關(guān)數(shù)據(jù)的。但,我還是建議你,把上面dtd.及.xsl的相關(guān)知識弄懂一些。
          這一篇就了這里,下一篇講解 DOM例子。

          posted on 2008-04-21 16:33 叮當(dāng)小馬 閱讀(196) 評論(0)  編輯  收藏 所屬分類: XML

          主站蜘蛛池模板: 江油市| 大埔县| 莱阳市| 开远市| 彰化县| 石林| 荥阳市| 迭部县| 隆昌县| 府谷县| 宣恩县| 西畴县| 澜沧| 武川县| 文登市| 泸水县| 太白县| 赫章县| 康定县| 涪陵区| 琼海市| 上思县| 邛崃市| 乃东县| 德庆县| 闸北区| 望都县| 柏乡县| 库车县| 确山县| 孝义市| 宜都市| 定州市| 中方县| 迁安市| 琼结县| 万全县| 沛县| 松溪县| 贵阳市| 南开区|