powerbuilder中的資料視窗真是好的不得了,工作基本上都是圍繞它做,很高效,這幾天專案上需要用導出xml文件,就用pb9(xml導出導入功能是從powerbuilder9.0增加的功能)做了一個demo以驗證可行性
範例文件如下(不貼DTD了,舉簡單例子說明一下)
程式碼如下:
<trans> <transdetail> <order><date/></order> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </transdetail> <transdetail> <order><date/></order> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </transdetail> </trans>
我的表格結構,我想大家的表也應該都是這樣設計的
order(銷售訂單,包括客戶,日期等資訊)
orderdetail(銷售訂單明細,包括產品,數量及價格資訊)
至此,可能明眼人一眼就能看出,這個xml的格式設定有些問題,例如這樣可能更加合理
代碼如下:
<trans> <!--transdetail 这个节或许是多余的--> <order> <date/> <detail><!-- 明细是一个订单的一部分,不应该脱离订单头--> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </detail> </order> <order> <date/> <detail> <orderdetail><product/></orderdetail> <orderdetail><product/></orderdetail> </detail> </order> </trans>
不過人家是ZF部門,改不了的,所以蹩腳也得做
pb9中的處理代碼:其實在pb9種只寫了三行代碼,真正的代碼其實只有一行,就是增加了一個窗口,上面放了一個資料窗口,一個按鈕,按鈕裡寫了這麼一行程式碼,呵呵
dw_export.save("c:\test.xml",xml!,false)
其實真正要處理的是定義個兩個資料窗口,主要是定義他們的xml模版:
d_order(訂單頭資料出口,第二行程式碼,可以在EITX中設定)
1.新資料視窗(這裡註意,如果如何條件的資料有多行時,最好在SQL中進行group,否則產生的資料會有重複)
3.在export/import template xml(下面簡稱EITX)編輯區點右鍵,save as另一個名字
4.把data export下的use template設定為你剛剛儲存的模版名稱
定義好的模版如下所示:
程式碼如下:
<?xml version=~"1.0~" encoding=~"gb2312~" standalone=~"no~"?> <trans> <transdetail __pbband=~"detail~"><!-- 在EITX中的transdetail节上点右键选中"starts detail" [注1] --> <order> <date>order_date</date> </order> dw_detail <!-- 在EITX中的transdetail节上点右键选"add child"下的"datawindow control refrence" [注2] --> </transdetail> </trans>
有兩點要注意
[註1]這個start detail,將控制資料的循環,所以需要選中,但是每個xml只能定義一個,這裡就會產生一個問題,如果我訂單頭循環後,如何再讓訂單明細循環,結論是,在一個資料視窗中無法實現,必須分資料視窗處理,也就有了註2
[註2]我們需要在d_order中插入一個report,也就是d_orderdetail,在d_order中的control list(同在datawindow control refrence中相同)中就是dw_detail(預設名稱是dw_1,我改名了)
d_orderdetail(訂單明細資料出口,也就是上面report,dw_detail引用的資料窗口,第三行程式碼,可以在EITX中設定)
1.新資料視窗
2.在export/import template xml(下面簡稱EITX)編輯區點右鍵,save as另一個名字
3.把data export下的use template設定為你剛剛儲存的模版名
[註3]注意,當我們在d_order中匯出xml時,d_orderdetail中的xml宣告和頂節點會被忽略
[註4]這個地方定義的就是orderdetail部分,因為一個訂單可能會有多條明細訊息,所以我們需要設定為start detail,也就是循環。
最後產生的文件如下
程式碼如下:
<trans> <transdetail> <order><date>20080101</date></order> <orderdetail><product>甲</product></orderdetail> <orderdetail><product>已</product></orderdetail> </transdetail> <transdetail> <order><date>20080102</date></order> <orderdetail><product>甲</product></orderdetail> <orderdetail><product>丙</product></orderdetail> </transdetail> </trans>
#註:如果讓你設計一個xml介面文件,請一定要考慮使用者的方便性
以上是xml在powerbuilder中應用的程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

RSS和XML是用於網絡內容管理的工具。 RSS用於發布和訂閱內容,XML用於存儲和傳輸數據。它們的工作原理包括內容髮布、訂閱和更新推送。使用示例包括RSS發布博客文章和XML存儲書籍信息。

RSS文檔是基於XML的結構化文件,用於發布和訂閱頻繁更新的內容。它的主要作用包括:1)自動化內容更新,2)內容聚合,3)提高瀏覽效率。通過RSSfeed,用戶可以訂閱並及時獲取來自不同來源的最新信息。

RSS的XML結構包括:1.XML聲明和RSS版本,2.頻道(Channel),3.條目(Item)。這些部分構成了RSS文件的基礎,允許用戶通過解析XML數據來獲取和處理內容信息。

RSSFEEDSUSEXMLTOSYNDICATECONTENT; PARSINGTHEMINVOLVESLOADINGINGINGINGINSSTRUCTURE,andExtractingData.ApplicationsIncludeBuildBuildingNewSagGregatorSaterNewSagGregatorSator andTrackingPodcastepodcastepisodes。

RSS文檔的工作原理是通過XML文件發佈內容更新,用戶通過RSS閱讀器訂閱並接收通知。 1.內容髮布者創建並更新RSS文檔。 2.RSS閱讀器定期訪問並解析XML文件。 3.用戶瀏覽和閱讀更新內容。使用示例:訂閱TechCrunch的RSS源,只需複制鏈接到RSS閱讀器中即可。

使用XML構建RSSfeed的步驟如下:1.創建根元素並設置版本;2.添加channel元素及其基本信息;3.添加條目(item)元素,包括標題、鏈接和描述;4.轉換XML結構為字符串並輸出。通過這些步驟,你可以從零開始創建一個有效的RSSfeed,並通過添加額外的元素如發布日期和作者信息來增強其功能。

創建RSS文檔的步驟如下:1.使用XML格式編寫,根元素為,包含元素。 2.在內添加、、等元素描述頻道信息。 3.添加元素,每個代表一個內容條目,包含、、、等。 4.可選地添加和元素,豐富內容。 5.確保XML格式正確,使用在線工具驗證,優化性能並保持內容更新。

XML在RSS中的核心作用是提供一種標準化和靈活的數據格式。 1.XML的結構和標記語言特性使其適合數據交換和存儲。 2.RSS利用XML創建標準化格式,方便內容共享。 3.XML在RSS中的應用包括定義feed內容的元素,如標題和發布日期。 4.優勢包括標準化和可擴展性,挑戰包括文件冗長和嚴格語法要求。 5.最佳實踐包括驗證XML有效性、保持簡潔、使用CDATA和定期更新。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用