<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Heis的Blog

    保持簡單,保持愚蠢
    隨筆 - 29, 文章 - 1, 評論 - 122, 引用 - 0
    數(shù)據(jù)加載中……

    JasperReport那些事兒(三)——使用XPATH查詢XML

           同事Q:“小黑,你上次說一半不說一半,這次可得老實交待怎么從XML查詢數(shù)據(jù)了吧。”
           俺:“好好,我這就交待。你看我這星期不是忙得焦頭爛額么?”(注:忙永遠(yuǎn)是程序員的借口)

           其實JasperReport使用的也不是什么神秘的東西,就是XPATH。
           XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進(jìn)行遍歷(從w3cshool抄來的)。關(guān)于XPATH,我就不詳細(xì)講了,因為對于普通的報表,只需要掌握幾個常用的查詢;如果想深究網(wǎng)上有更好的教程(教程可以點這里)。我這里只簡單地講解XPATH的一些概念和常用的一些查詢。

    (1)什么是絕對路徑和相對路徑?
    我這里那是拿出我的NameList做例子吧。
    <?xml version="1.0" encoding="utf-8" ?>
    <NameList>
        
    <Person>
            
    <Name>強尼</Name>
            
    <Gender></Gender>
            
    <Age>56</Age>
        
    </Person>
        
    <Person>
            
    <Name>阿美</Name>
            
    <Gender></Gender>
            
    <Age>23</Age>
        
    </Person>
        
    <Person>
            
    <Name>李麗</Name>
            
    <Gender></Gender>
            
    <Age>58</Age>
        
    </Person>
    </NameList>
    例如我要選取所有的Person節(jié)點,那絕對路徑應(yīng)該這樣寫:
    /NameList/Person
    現(xiàn)在以Person作為根路徑,如果要選取所有Person節(jié)點下的Name節(jié)點,那相對路徑可以這樣寫:
    Name
    所謂的相對路徑是不以/開頭,相對與一個絕對路徑的路徑。如果用絕對路徑選取所有Name節(jié)點,可以這樣寫:
    /NameList/Person/Name

    (2)帶條件的XPATH查詢
    XPATH的條件是寫在路徑后的一個方括號內(nèi),條件支持XPATH的函數(shù)和一些邏輯運算符號。常用的邏輯運算符號有+,<,=,or,and等。以下是一些例子。
    選取第一個Person節(jié)點
    /NameList/Person[1]或/NameList/Person[position()=1]
    選取Age小于50的Person節(jié)點
    /NameList/Person[./Age<50]
    選取Gender是女的Person節(jié)點
    /NameList/Person[./Gender='女']

    (3)XPATH的函數(shù)
    count()函數(shù)主要是計算節(jié)點數(shù)量,可以帶一個參數(shù),例如
    查詢Person的節(jié)點數(shù)量,結(jié)果返回3
    count(/NameList/Person)

    position() 函數(shù)主要是用于條件查詢,返回節(jié)點的定位,例如
    選取前兩個Person節(jié)點
    /NameList/Person[position()<=2]

            簡單介紹完XPATH,下面我們來看XPATH怎么在JasperReport里運用。我在JasperReport那些事兒(一)里曾經(jīng)介紹過XPATH的使用,但是沒有做詳細(xì)介紹。現(xiàn)在我們再來看其中的一個步驟。

    看第十步,其實這里就是配置了一個根路徑/NameList/Person,下面幾個field的Descirption其實也是XPATH表達(dá)式,配置了相對路徑。通過XPATH表達(dá)式,field會獲取到匹配節(jié)點的值,這就是XML數(shù)據(jù)填充的過程。

    10)    打開NameList_subreport0模板,先配置XPATH,然后右擊節(jié)點Name,選Add node as field.同樣將Gender和Age節(jié)點加入field。點OK。然后你可以看到左邊的結(jié)構(gòu)視窗多了三個Field。
      


     




    程序員的一生其實可短暫了,這電腦一開一關(guān),一天過去了,嚎;電腦一開不關(guān),那就成服務(wù)器了,嚎……

    posted on 2009-02-28 13:50 Heis 閱讀(2262) 評論(0)  編輯  收藏 所屬分類: JasperReport那些事兒

    主站蜘蛛池模板: 国产成人综合亚洲一区| 亚洲综合一区二区| 亚洲av无码成人影院一区| 和日本免费不卡在线v| 亚洲av专区无码观看精品天堂| 99久久99久久精品免费观看| 亚洲免费精彩视频在线观看| 99爱免费观看视频在线| 亚洲人成网站18禁止久久影院 | 亚洲国产精品综合久久20| 中国人xxxxx69免费视频| 亚洲一区二区久久| 国内精品免费视频自在线| 在线观看亚洲精品专区| 亚洲狠狠爱综合影院婷婷| 中文在线免费看视频| 亚洲欧洲第一a在线观看| 免费福利视频导航| 亚洲欧美日韩中文字幕在线一区| 四虎成人免费观看在线网址| 又硬又粗又长又爽免费看| 亚洲VA中文字幕不卡无码| 两性刺激生活片免费视频| www亚洲精品久久久乳| 国产成人精品久久亚洲| 日本免费污片中国特一级| 亚洲av无码一区二区三区天堂古代| 女人被男人桶得好爽免费视频| 高清免费久久午夜精品| 国产成人亚洲精品青草天美| 国产免费AV片在线播放唯爱网| 亚洲成av人片在www鸭子| 亚洲日韩VA无码中文字幕| 久久青草免费91线频观看不卡| 国产成人精品日本亚洲专| 久久精品国产精品亚洲下载| 在线播放免费人成毛片乱码| 亚洲入口无毒网址你懂的| 亚洲伊人久久成综合人影院| 久久精品免费一区二区| 一级做a爰片久久毛片免费陪 |