2010-08-29 25 views
5

Làm cách nào để phân tích cú pháp cấu trúc này? Tôi cần biến nó thành các biến đơn. Ví dụ. từ thuộc tính struct:Phân tích cú pháp CFDUMP cấu trúc và giá trị lưu trữ

name 

type 

value 

Tôi không quen với cấu trúc và tôi cần nhập loại dữ liệu này vào cơ sở dữ liệu.

Tôi đã chơi xung quanh với cfloop, nhưng không có gì.

cfdump

+0

Bạn muốn dữ liệu này được lưu trữ trong cơ sở dữ liệu như thế nào? ví dụ. Mục đích là gì. –

Trả lời

6

Giả sử tên biến của bạn là "foo", bạn có thể truy cập vào tên như thế này

foo.attributes.name 

cấu trúc đơn giản là truy cập thông qua ký hiệu dấu chấm.

1

Nếu bạn muốn chỉ đơn giản là đổ cấu trúc này, sử dụng một XML đơn giản và lưu nó trong một lĩnh vực CLOB hoặc BLOB. Nhưng nếu bạn muốn thực hiện các hoạt động như tìm kiếm, thay đổi thường xuyên dữ liệu, thì tốt hơn bạn nên xem xét cấu trúc cây.

Nếu bạn đang sử dụng Oracle, hãy xem CONNECT BY PRIOR, điều này làm cho bạn lưu trữ các giá trị trong cơ sở dữ liệu trực tiếp dưới dạng hàng và sau đó truy vấn chúng và tải vào cấu trúc cây.

Ý chính ở đây là cả hai bạn có thể lưu trữ và truy xuất dữ liệu như thể bạn đang xử lý cấu trúc dữ liệu TREE đơn giản.

+0

cũng có cách nào để lấy từng trường dưới dạng biến không ??? im sử dụng một hàm phân tích một đầu vào như bạn thấy, bây giờ tôi chỉ cần kết quả để tôi có thể làm việc với chúng. chức năng này nằm ở http://www.bennadel.com/blog/779-Parsing-HTML-Tag-Data-Into-A-ColdFusion-Structure.htm – loo

0

Cùng dòng giống như những gì Ben nói, tôi không chắc tại sao bạn muốn kéo cấu trúc nhỏ đẹp này ra xa nhau. Sử dụng nó ở dạng hiện tại của nó bằng cách truy cập các giá trị bên trong nó thay vì tháo nó ra.

<cfloop collection="#foo.attributes#" item="myKey"> 
    <cfoutput>Value of #myKey# is #structFind(foo.attributes, myKey)#</cfoutput> 
</cfloop> 

Tham khảo LiveDocs' structure looping page để biết thêm chi tiết.

Các vấn đề liên quan