Dom4j完整教程

 轉自:https://blog.csdn.net/chenweitang123/article/details/6255108java

目錄node

一、DOM4J簡介ajax

二、XML文檔操做1spring

      2.一、讀取XML文檔:框架

      2.二、獲取根節點dom

      2.三、. 新增一個節點以及其下的子節點與數據測試

      2.四、 寫入XML文件編碼

      2. 五、 遍歷xml節點url

      2.六、建立xml文件spa

      2.七、修改節點屬性

      2.八、刪除節點

二、XML文檔操做2

       2.一、Document對象相關

          一、讀取XML文件,得到document對象.

          二、解析XML形式的文本,獲得document對象.

          三、主動建立document對象.

       2.二、節點相關

          一、獲取文檔的根節點.

          二、取得某節點的單個子節點.

          3.取得節點的文字

          4.取得某節點下指定名稱的全部節點並進行遍歷.

          5.對某節點下的全部子節點進行遍歷.

          6.在某節點下添加子節點.

          7.設置節點文字.

          8.刪除某節點.

          9.添加一個CDATA節點.

       2.三、屬性相關.

          1.取得節點的指定的屬性

          2.取得屬性的文字

          3.遍歷某節點的全部屬性

          4.設置某節點的屬性和文字.

          5.設置屬性的文字

          6.刪除某屬性

      2.四、將文檔寫入XML文件.

          1.文檔中全爲英文,不設置編碼,直接寫入.

          2.文檔中含有中文,設置編碼格式再寫入.

      2.五、字符串與XML的轉換

         1.將字符串轉化爲XML

         2.將文檔或節點的XML轉化爲字符串.

   三、dom4j的事件處理模型涉及的類和接口:

      3.一、類:SAXReader

      3.二、接口ElementHandler

      3.三、Element類

      3.四、類DocumentHelper

四、經過xpath查找指定的節點

       4.一、 xpath語法

          一、選取節點

          二、謂語(Predicates)

          三、選取未知節點

          四、選取若干路徑

          五、XPath 軸

          六、路徑

          七、XPath 運算符

 

一、DOM4J簡介

    DOM4J是 dom4j.org 出品的一個開源 XML 解析包。DOM4J應用於 Java 平臺,採用了 Java 集合框架並徹底支持 DOM,SAX 和 JAXP。

    DOM4J 使用起來很是簡單。只要你瞭解基本的 XML-DOM 模型,就能使用。

    Dom:把整個文檔做爲一個對象。

  DOM4J 最大的特點是使用大量的接口。它的主要接口都在org.dom4j裏面定義:

Attribute

定義了 XML 的屬性。

Branch

指可以包含子節點的節點。如XML元素(Element)和文檔(Docuemnts)定義了一個公共的行爲

CDATA

定義了 XML CDATA 區域

CharacterData

是一個標識接口,標識基於字符的節點。如CDATA,Comment, Text.

Comment

定義了 XML 註釋的行爲

Document

定義了XML 文檔

DocumentType

定義 XML DOCTYPE 聲明

Element

定義XML 元素

ElementHandler

定義了Element 對象的處理器

ElementPath

被 ElementHandler 使用,用於取得當前正在處理的路徑層次信息

Entity

定義 XML entity

Node

爲dom4j中全部的XML節點定義了多態行爲

NodeFilter

定義了在dom4j 節點中產生的一個濾鏡或謂詞的行爲(predicate)

ProcessingInstruction

定義 XML 處理指令

Text

定義 XML 文本節點

Visitor

用於實現 Visitor模式

XPath

在分析一個字符串後會提供一個 XPath 表達式

接口之間的繼承關係以下:

interface java.lang.Cloneable

    interface org.dom4j.Node

           interface org.dom4j.Attribute

           interface org.dom4j.Branch

                  interface org.dom4j.Document

                  interface org.dom4j.Element

           interface org.dom4j.CharacterData

                  interface org.dom4j.CDATA

                  interface org.dom4j.Comment

                  interface org.dom4j.Text

           interface org.dom4j.DocumentType

           interface org.dom4j.Entity

           interface org.dom4j.ProcessingInstruction

二、XML文檔操做1

2.一、讀取XML文檔:

     讀寫XML文檔主要依賴於org.dom4j.io包,有DOMReader和SAXReader兩種方式。由於利用了相同的接口,它們的調用方式是同樣的。

 

 

[java]  view plain  copy
 
  1. public static Document load(String filename) {  
  2.     Document document = null;  
  3.     try {  
  4.         SAXReader saxReader = new SAXReader();  
  5.         document = saxReader.read(new File(filename)); // 讀取XML文件,得到document對象  
  6.     } catch (Exception ex) {  
  7.         ex.printStackTrace();  
  8.     }  
  9.     return document;  
  10. }  
  11.   
  12. public static Document load(URL url) {  
  13.     Document document = null;  
  14.     try {  
  15.         SAXReader saxReader = new SAXReader();  
  16.         document = saxReader.read(url); // 讀取XML文件,得到document對象  
  17.     } catch (Exception ex) {  
  18.         ex.printStackTrace();  
  19.     }  
  20.     return document;  
  21. }  

 

 

//讀取指定的xml文件以後返回一個Document對象,這個對象表明了整個XML文檔,用於各類Dom運算。執照XML文件頭所定義的編碼來轉換。

2.二、獲取根節點

根節點是xml分析的開始,任何xml分析工做都須要從根開始

 

[java]  view plain  copy
 
  1. Xml xml = new Xml();  
  2.   
  3. Document dom = xml.load(path + "/" + file);  
  4.   
  5. Element root = dom.getRootElement();  

 

 

2.三、. 新增一個節點以及其下的子節點與數據

 

[java]  view plain  copy
 
  1. Element menuElement = root.addElement("menu");  
  2.   
  3. Element engNameElement = menuElement.addElement("engName");  
  4.   
  5. engNameElement.setText(catNameEn);  
  6.   
  7. Element chiNameElement = menuElement.addElement("chiName");  
  8.   
  9. chiNameElement.setText(catName);  

 

 

2.四、 寫入XML文件

注意文件操做的包裝類是亂碼的根源

[java] view plain copy
 
  1. public static boolean doc2XmlFile(Document document, String filename) {  
  2.     boolean flag = true;  
  3.     try {  
  4.         XMLWriter writer = new XMLWriter(new OutputStreamWriter(  
  5.                 new FileOutputStream(filename), "UTF-8"));  
  6.         writer.write(document);  
  7.         writer.close();  
  8.     } catch (Exception ex) {  
  9.         flag = false;  
  10.         ex.printStackTrace();  
  11.     }  
  12.     System.out.println(flag);  
  13.     return flag;  
  14. }  
 
    Dom4j經過XMLWriterDocument對象表示的XML寫入指定的文件,並使用OutputFormat格式對象指定寫入的風格和編碼方法。調用OutputFormat.createPrettyPrint()方法能夠得到一個默認的pretty print風格的格式對象。對OutputFormat對象調用setEncoding()方法能夠指定XML文件的編碼方法。
 
[java] view plain copy
 
  1. public void writeTo(OutputStream out, String encoding)  
  2.         throws UnsupportedEncodingException, IOException {  
  3.     OutputFormat format = OutputFormat.createPrettyPrint();  
  4.   
  5.     format.setEncoding("gb2312");  
  6.   
  7.     XMLWriter writer = new XMLWriter(System.out, format);  
  8.   
  9.     writer.write(doc);  
  10.   
  11.     writer.flush();  
  12.   
  13.     return;  
  14.   
  15. }  

2. 五、 遍歷xml節點

       對Document對象調用getRootElement()方法能夠返回表明根節點的Element對象。擁有了一個Element對象後,能夠對該對象調用elementIterator()方法得到它的子節點的Element對象們的一個迭代器。使用(Element)iterator.next()方法遍歷一個iterator並把每一個取出的元素轉化爲Element類型。

 

[java] view plain copy
 
  1. public boolean isOnly(String catNameEn, HttpServletRequest request,  
  2.         String xml) {  
  3.     boolean flag = true;  
  4.     String path = request.getRealPath("");  
  5.     Document doc = load(path + "/" + xml);  
  6.     Element root = doc.getRootElement();  
  7.     for (Iterator i = root.elementIterator(); i.hasNext();) {  
  8.         Element el = (Element) i.next();  
  9.         if (catNameEn.equals(el.elementTextTrim("engName"))) {  
  10.             flag = false;  
  11.             break;  
  12.         }  
  13.     }  
  14.     return flag;  
  15. }  

2.六、建立xml文件

 

[java]  view plain  copy
 
  1. public static void main(String args[]) {  
  2.   
  3.     String fileName = "c:/text.xml";  
  4.   
  5.     Document document = DocumentHelper.createDocument();// 創建document對象,用來操做xml文件  
  6.   
  7.     Element booksElement = document.addElement("books");// 創建根節點  
  8.   
  9.     booksElement.addComment("This is a test for dom4j ");// 加入一行註釋  
  10.   
  11.     Element bookElement = booksElement.addElement("book");// 添加一個book節點  
  12.   
  13.     bookElement.addAttribute("show", "yes");// 添加屬性內容  
  14.   
  15.     Element titleElement = bookElement.addElement("title");// 添加文本節點  
  16.   
  17.     titleElement.setText("ajax in action");// 添加文本內容  
  18.   
  19.     try {  
  20.   
  21.         XMLWriter writer = new XMLWriter(new FileWriter(new File(fileName)));  
  22.   
  23.         writer.close();  
  24.   
  25.     } catch (Exception e) {  
  26.   
  27.         e.printStackTrace();  
  28.   
  29.     }  
  30.   
  31. }  

 

 

2.七、修改節點屬性

 

[java] view plain copy
 
  1. public static void modifyXMLFile() {  
  2.   
  3.     String oldStr = "c:/text.xml";  
  4.   
  5.     String newStr = "c:/text1.xml";  
  6.   
  7.     Document document = null;  
  8.   
  9.     //修改節點的屬性  
  10.   
  11.     try {  
  12.   
  13.     SAXReader saxReader = new SAXReader(); // 用來讀取xml文檔  
  14.   
  15.     document = saxReader.read(new File(oldStr)); // 讀取xml文檔  
  16.   
  17.     List list = document.selectNodes("/books/book/@show");// 用xpath查找節點book的屬性  
  18.   
  19.     Iterator iter = list.iterator();  
  20.   
  21.     while (iter.hasNext()) {  
  22.   
  23.     Attribute attribute = (Attribute) iter.next();  
  24.   
  25.     if (attribute.getValue().equals("yes"))   
  26.   
  27.         attribute.setValue("no");  
  28.   
  29.     }  
  30.   
  31.     } catch (Exception e) {  
  32.   
  33.         e.printStackTrace();  
  34.   
  35.     }  
  36.   
  37.     //修改節點的內容  
  38.   
  39.     try {  
  40.   
  41.     SAXReader saxReader = new SAXReader(); // 用來讀取xml文檔  
  42.   
  43.     document = saxReader.read(new File(oldStr)); // 讀取xml文檔  
  44.   
  45.     List list = document.selectNodes("/books/book/title");// 用xpath查找節點book的內容  
  46.   
  47.     Iterator iter = list.iterator();  
  48.   
  49.     while (iter.hasNext()) {  
  50.   
  51.     Element element = (Element) iter.next();  
  52.   
  53.     element.setText("xxx");// 設置相應的內容  
  54.   
  55.     }  
  56.   
  57.     } catch (Exception e) {  
  58.   
  59.         e.printStackTrace();  
  60.   
  61.     }  
  62.   
  63.        
  64.   
  65.     try {  
  66.   
  67.     XMLWriter writer = new XMLWriter(new FileWriter(new File(newStr)));  
  68.   
  69.     writer.write(document);  
  70.   
  71.     writer.close();  
  72.   
  73.     } catch (Exception ex) {  
  74.   
  75.         ex.printStackTrace();  
  76.   
  77.     }  
  78.   
  79. }  

 

 

2.八、刪除節點

 

[java] view plain copy
 
  1. public static void removeNode() {  
  2.   
  3.     String oldStr = "c:/text.xml";  
  4.   
  5.     String newStr = "c:/text1.xml";  
  6.   
  7.     Document document = null;  
  8.   
  9.     try {  
  10.   
  11.         SAXReader saxReader = new SAXReader();// 用來讀取xml文檔  
  12.   
  13.         document = saxReader.read(new File(oldStr));// 讀取xml文檔  
  14.   
  15.         List list = document.selectNodes("/books/book");// 用xpath查找對象  
  16.   
  17.         Iterator iter = list.iterator();  
  18.   
  19.         while (iter.hasNext()) {  
  20.   
  21.             Element bookElement = (Element) iter.next();  
  22.   
  23.             // 建立迭代器,用來查找要刪除的節點,迭代器至關於指針,指向book下全部的title節點  
  24.   
  25.             Iterator iterator = bookElement.elementIterator("title");  
  26.   
  27.             while (iterator.hasNext()) {  
  28.   
  29.                 Element titleElement = (Element) iterator.next();  
  30.   
  31.                 if (titleElement.getText().equals("ajax in action")) {  
  32.   
  33.                     bookElement.remove(titleElement);  
  34.   
  35.                 }  
  36.   
  37.             }  
  38.   
  39.         }  
  40.   
  41.     } catch (Exception e) {  
  42.   
  43.         e.printStackTrace();  
  44.   
  45.     }  
  46.   
  47.     try {  
  48.   
  49.         XMLWriter writer = new XMLWriter(new FileWriter(new File(newStr)));  
  50.   
  51.         writer.write(document);  
  52.   
  53.         writer.close();  
  54.   
  55.     } catch (Exception ex) {  
  56.   
  57.         ex.printStackTrace();  
  58.   
  59.     }  
  60.   
  61. }  

 

 

 

二、XML文檔操做2

2.一、Document對象相關        

一、讀取XML文件,得到document對象.     

       SAXReader reader = new SAXReader();  
      Document   document = reader.read(new File("input.xml"));      

二、解析XML形式的文本,獲得document對象.      

             String text = "<members></members>";      
             Document document = DocumentHelper.parseText(text);      

三、主動建立document對象.      

             Document document = DocumentHelper.createDocument();      
             Element root = document.addElement("members");// 建立根節點      

2.二、節點相關        

一、獲取文檔的根節點.      

Element rootElm = document.getRootElement();      

二、取得某節點的單個子節點.      

Element memberElm=root.element("member");// "member"是節點名      

3.取得節點的文字      

String text=memberElm.getText();     
String text=root.elementText("name");這個是取得根節點下的name字節點的文字.       

4.取得某節點下指定名稱的全部節點並進行遍歷.      

List nodes = rootElm.elements("member");      
for (Iterator it = nodes.iterator(); it.hasNext();) {      
    Element elm = (Element) it.next();      
   // do something      
}      

5.對某節點下的全部子節點進行遍歷.      

            for(Iterator it=root.elementIterator();it.hasNext();){      
                 Element element = (Element) it.next();      
                // do something      
             }      

6.在某節點下添加子節點.      

Element ageElm = newMemberElm.addElement("age");      

7.設置節點文字.      

ageElm.setText("29");      

8.刪除某節點.      

parentElm.remove(childElm);    // childElm是待刪除的節點,parentElm是其父節點      

9.添加一個CDATA節點.      

         Element contentElm = infoElm.addElement("content");      
         contentElm.addCDATA(diary.getContent());      
      

2.三、屬性相關.     

1.取得節點的指定的屬性      

             Element root=document.getRootElement();          
             Attribute attribute=root.attribute("size");    // 屬性名name      

2.取得屬性的文字      

    String text=attribute.getText();    
String text2=root.element("name").attributeValue("firstname");
//這個是取得根節點下name字節點的firstname屬性的值.      

3.遍歷某節點的全部屬性      

Element root=document.getRootElement();
for(Iterator it=root.attributeIterator();it.hasNext();){
Attribute attribute = (Attribute) it.next();
String text=attribute.getText();
System.out.println(text);
}

4.設置某節點的屬性和文字.      

newMemberElm.addAttribute("name", "sitinspring");    

5.設置屬性的文字      

             Attribute attribute=root.attribute("name");      
             attribute.setText("sitinspring");      

6.刪除某屬性      

             Attribute attribute=root.attribute("size");// 屬性名name      
             root.remove(attribute);      

2.四、將文檔寫入XML文件.     

1.文檔中全爲英文,不設置編碼,直接寫入.      

XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));      
writer.write(document);      
writer.close();      

2.文檔中含有中文,設置編碼格式再寫入.     

OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");    // 指定XML編碼
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
writer.write(document);
writer.close();

2.五、字符串與XML的轉換      

1.將字符串轉化爲XML      

String text = "<members> <member>sitinspring</member> </members>";      
Document document = DocumentHelper.parseText(text);      

2.將文檔或節點的XML轉化爲字符串.     

SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
Element root=document.getRootElement();
String docXmlText=document.asXML();
String rootXmlText=root.asXML();
Element memberElm=root.element("member");
String memberXmlText=memberElm.asXML();
 
       
       

三、dom4j的事件處理模型涉及的類和接口:

3.一、類:SAXReader

 

     當解析到path指定的路徑時,將調用參數handler指定的處理器。針對不一樣的節點能夠添加多個handler實例。或者調用默認的Handler setDefaultHandler(ElementHandler handler);

3.二、接口ElementHandler

 

     該方法在解析到元素的開始標籤時被調用。

 

     該方法在解析到元素的結束標籤時被調用

3.三、接口:ElementPath (假設有參數:ElementPath path)

 

     該方法與SAXReader類中的addHandler()方法的做用相同。路徑path能夠是絕對路徑(路徑以/開頭),也能夠是相對路徑(假設是當前路徑的子節點路徑)。

 

     移除指定路徑上的ElementHandler實例。路徑能夠是相對路徑,也能夠是絕對路徑。

 

     該方法獲得當前節點的路徑。該方法返回的是完整的絕對路徑

 

     該方法獲得當前節點。

3.三、Element類

getQName()

元素的QName對象

getNamespace()

元素所屬的Namespace對象

getNamespacePrefix()

元素所屬的Namespace對象的prefix

getNamespaceURI()

元素所屬的Namespace對象的URI

getName()

元素的local name

getQualifiedName()

元素的qualified name

getText()

元素所含有的text內容,若是內容爲空則返回一個空字符串而不是null

getTextTrim()

元素所含有的text內容,其中連續的空格被轉化爲單個空格,該方法不會返回null

attributeIterator()

元素屬性的iterator,其中每一個元素都是Attribute對象

attributeValue()

元素的某個指定屬性所含的值

elementIterator()

元素的子元素的iterator,其中每一個元素都是Element對象

element()

元素的某個指定(qualified name或者local name)的子元素

elementText()

元素的某個指定(qualified name或者local name)的子元素中的text信息

getParent

元素的父元素

getPath()

元素的XPath表達式,其中父元素的qualified name和子元素的qualified name之間使用"/"分隔

isTextOnly()

是否該元素只含有text或是空元素

isRootElement()

是否該元素是XML樹的根節點

 

3.四、類DocumentHelper 

DocumentHelper 是用來生成生成 XML 文檔的工廠類

四、經過xpath查找指定的節點

       採用xpath查找須要引入jaxen-xx-xx.jar,不然會報java.lang.NoClassDefFoundError: org/jaxen/JaxenException異常。

 

  List list=document.selectNodes("/books/book/@show");

4.一、 xpath語法

一、選取節點

XPath 使用路徑表達式在 XML 文檔中選取節點,節點是沿着路徑或者 step 來選取的。

常見的路徑表達式:

表達式

描述

nodename

選取當前節點的全部子節點

/

從根節點選取

//

從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置

.

選取當前節點

..

選取當前節點的父節點

@

選取屬性

實例

路徑表達式

結果

bookstore

選取 bookstore 元素的全部子節點

/bookstore

選取根元素 bookstore

bookstore/book

選取bookstore 下名字爲 book的全部子元素

//book

選取全部 book 子元素,而無論它們在文檔中的位置。

bookstore//book

選取bookstore 下名字爲 book的全部後代元素,而無論它們位於 bookstore 之下的什麼位置。

//@lang

選取全部名爲 lang 的屬性。

二、謂語(Predicates)

謂語用來查找某個特定的節點或者包含某個指定的值的節點。

謂語被嵌在方括號中。

實例

常見的謂語的一些路徑表達式:

路徑表達式

結果

/bookstore/book[1]

選取屬於 bookstore 子元素的第一個 book 元素。

/bookstore/book[last()]

選取屬於 bookstore 子元素的最後一個 book 元素。

/bookstore/book[last()-1]

選取屬於 bookstore 子元素的倒數第二個 book 元素。

/bookstore/book[position()<3]

選取最前面的兩個屬於 bookstore 元素的子元素的 book 元素。

//title[@lang]

選取全部擁有名爲 lang 的屬性的 title 元素。

//title[@lang='eng']

選取全部 title 元素,要求這些元素擁有值爲 eng 的 lang 屬性。

/bookstore/book[price>35.00]

選取全部 bookstore 元素的 book 元素,要求book元素的子元素 price 元素的值須大於 35.00。

/bookstore/book[price>35.00]/title

選取全部 bookstore 元素中的 book 元素的 title 元素,要求book元素的子元素 price 元素的值須大於 35.00

三、選取未知節點

XPath 通配符可用來選取未知的 XML 元素。

通配符

描述

*

匹配任何元素節點

@*

匹配任何屬性節點

node()

匹配任何類型的節點

實例

路徑表達式

結果

/bookstore/*

選取 bookstore 元素的全部子節點

//*

選取文檔中的全部元素

//title[@*]

選取全部帶有屬性的 title 元素。

四、選取若干路徑

經過在路徑表達式中使用「|」運算符,您能夠選取若干個路徑。

實例

路徑表達式

結果

//book/title | //book/price

選取全部 book 元素的 title 和 price 元素。

//title | //price

選取全部文檔中的 title 和 price 元素。

/bookstore/book/title|//price

選取全部屬於 bookstore 元素的 book 元素的title 元素,以及文檔中全部的 price 元素。

 

五、XPath 軸

軸可定義某個相對於當前節點的節點集。

軸名稱

結果

ancestor

選取當前節點的全部先輩(父、祖父等)

ancestor-or-self

選取當前節點的全部先輩(父、祖父等)以及當前節點自己

attribute

選取當前節點的全部屬性

child

選取當前節點的全部子元素。

descendant

選取當前節點的全部後代元素(子、孫等)。

descendant-or-self

選取當前節點的全部後代元素(子、孫等)以及當前節點自己。

following

選取文檔中當前節點的結束標籤以後的全部節點。

namespace

選取當前節點的全部命名空間節點

parent

選取當前節點的父節點。

preceding

選取文檔中當前節點的開始標籤以前的全部節點。

preceding-sibling

選取當前節點以前的全部同級節點。

self

選取當前節點。

六、路徑

 

位置路徑能夠是絕對的,也能夠是相對的。

絕對路徑起始於正斜槓( / ),而相對路徑不會這樣。在兩種狀況中,位置路徑均包括一個或多個步,每一個步均被斜槓分割:

 

/step/step/...

 

step/step/...

每一個步均根據當前節點集之中的節點來進行計算。

 

軸(axis):定義所選節點與當前節點之間的樹關係

節點測試(node-test):識別某個軸內部的節點

零個或者更多謂語(predicate):更深刻地提煉所選的節點集

步的語法軸名稱::節點測試[謂語]

實例

例子

結果

child::book

選取全部屬於當前節點的子元素的 book 節點

attribute::lang

選取當前節點的 lang 屬性

child::*

選取當前節點的全部子元素

attribute::*

選取當前節點的全部屬性

child::text()

選取當前節點的全部文本子節點

child::node()

選取當前節點的全部子節點

descendant::book

選取當前節點的全部 book 後代

ancestor::book

選擇當前節點的全部 book 先輩

ancestor-or-self::book

選取當前節點的全部book先輩以及當前節點(假如此節點是book節點的話)

child::*/child::price

選取當前節點的全部 price 孫。

 

七、XPath 運算符

運算符

描述

實例

返回值

|

計算兩個節點集

//book | //cd

返回全部帶有 book 和 ck 元素的節點集

+

加法

6 + 4

10

-

減法

6 - 4

2

*

乘法

6 * 4

24

div

除法

8 div 4

2

=

等於

price=9.80

若是 price 是 9.80,則返回 true。

若是 price 是 9.90,則返回 fasle。

!=

不等於

price!=9.80

若是 price 是 9.90,則返回 true。

若是 price 是 9.80,則返回 fasle。

小於

price<9.80

若是 price 是 9.00,則返回 true。

若是 price 是 9.90,則返回 fasle。

<=

小於或等於

price<=9.80

若是 price 是 9.00,則返回 true。

若是 price 是 9.90,則返回 fasle。

大於

price>9.80

若是 price 是 9.90,則返回 true。

若是 price 是 9.80,則返回 fasle。

>=

大於或等於

price>=9.80

若是 price 是 9.90,則返回 true。

若是 price 是 9.70,則返回 fasle。

or

price=9.80 or price=9.70

若是 price 是 9.80,則返回 true。

若是 price 是 9.50,則返回 fasle。

and

price>9.00 and price<9.90

若是 price 是 9.80,則返回 true。

若是 price 是 8.50,則返回 fasle。

mod

計算除法的餘數

5 mod 2

1

相關文章
相關標籤/搜索