XML và XPath

Một phần của tài liệu Giới thiệu về omnet++ và các vấn đề liên quan (Trang 27 - 28)

Tham số XPath của toán tử xmldoc() chỉ ra một element cụ thể trong file XML, điều này cho phép dễ dàng nối nhiều file cấu hình dạng XML nhỏ thành một file lớn hơn. Nếu biểu thức XPath phù hợp với nhiều element trong file thì element đầu tiên (thứ tự duyệt theo chiều sâu) sẽ được chọn.

Cú pháp của biểu thức:

Biểu thức chứa đường dẫn trong đó các thành phần được phân tách bằng dấu “/” hoặc “//”.

Các thành phần của đường dẫn có thể là tên thẻ (tag name) của các element, dấu “*”, “.” hoặc “..”. Tên thẻ của các element và dấu “*” có thể có thêm biểu thức mô tả thuộc tính của element theo dạng “[vị trí]” hoặc “[@thuộc_tính=’giá trị’]”. Vị trí của các element trong file XML được tính bắt đầu từ 0.

Dấu “/” có nghĩa là xét các element con; dấu “//” sẽ xét đến các element ở bất kỳ cấp nào nằm dưới element hiện thời.

Dấu “.”, “..” và “*” lần lượt đại diện cho element hiện thời, element cha và một element với tên bất kỳ.

Ví dụ:

/foo – element gốc (root element) có tên là <foo>

/foo/bar – element con <bar> đầu tiên của element gốc <foo>

//bar – element <bar> đầu tiên ở bất kỳ cấp nào (duyệt theo chiều sâu) /*/bar – element con <bar> đầu tiên của element gốc có tên bất kỳ /*/*/bar – element con <bar> đầu tiên dưới hai cấp của element gốc /*/foo[0] – element con <foo> đầu tiên của element gốc

/*/foo[1] – element con <foo> thứ hai của element gốc

/*/foo[@color=’green’] – element con <foo> đầu tiên có thuộc tính “color” có giá trị bằng “green”

//bar[1] – một element <bar> ở vị trí bất kỳ nhưng phải là element <bar> thứ hai //*[@color=’yellow’] – bất kỳ element nào ở bất kỳ vị trí nào có thuộc tính "color" có giá trị bằng "yellow"

//*[@color=’yellow’]/foo/bar – element con <bar> đầu tiên của element con <foo> đầu tiên của một element có thuộc tính “color” bằng “yellow” ở vị trí bất kỳ.

3.7.7. Hàm

Rất nhiều hàm có trong thư viện toán của C (math.h) như exp(), log(), sin(), cos(), floor(), ceil()...

Các hàm tạo giá trị ngẫu nhiên: uniform, exponential, normal...

Một phần của tài liệu Giới thiệu về omnet++ và các vấn đề liên quan (Trang 27 - 28)