1. "/"
/AAA: <AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> <DDD> <CCC/> <AAA>
/AAA/CCC: <AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> <DDD> <CCC/> <AAA>
/AAA/DDD/BBB:
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> <DDD> <CCC/> <AAA>
2. "//"
//BBB
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> <DDD> <CCC> <DDD> <BBB/> <BBB/> <DDD> <CCC> <AAA>
//DDD/BBB
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> DDD> <CCC> <DDD> <BBB/> <BBB/> <DDD> <CCC> <AAA>
3. "*":
/AAA/CCC/DDD/*
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> <DDD> <XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> <DDD> <CCC> <CCC> <BBB> <BBB> <BBB/> <BBB> <BBB> <CCC> <AAA>
/*/*/*/BBB
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> <DDD> <XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> <DDD> <CCC> <CCC> <BBB> <BBB> <BBB/> <BBB> <BBB> <CCC> <AAA>
//*
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> DDD> XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> DDD> CCC> AAA>
4. [1] , last()
/AAA/BBB[1]
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> AAA>
/AAA/BBB[last()]
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> AAA>
5. "@" :
//@id
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> AAA>
//BBB[@id]
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> AAA>
//BBB[@name]
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> AAA>
//BBB[@*]
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> AAA>
|
//BBB[not(@*)]
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> AAA>
//BBB[@id='b1']
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> AAA>
//BBB[@name='bbb']
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> AAA>
//BBB[normalize-space(@name)='bbb']
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> AAA>
6. count() :
//*[count(BBB)=2]
<AAA> <CCC> <BBB/> <BBB/> <BBB/> CCC> <DDD> <BBB/> <BBB/> DDD> <EEE> <CCC/> <DDD/> EEE> AAA>
//*[count(*)=2]
<AAA> <CCC> <BBB/> <BBB/> <BBB/> CCC> <DDD> <BBB/> <BBB/> DDD> <EEE> <CCC/> <DDD/> EEE> AAA>
//*[count(*)=3]
<AAA> <CCC> <BBB/> <BBB/> <BBB/> CCC> <DDD> <BBB/> <BBB/> DDD> <EEE> <CCC/> <DDD/> EEE> AAA>
7. name() :
//*[name()='BBB']
<AAA> <BCC> <BBB/> <BBB/> <BBB/> BCC> <DDB> <BBB/> <BBB/> DDB> <BEC> <CCC/> <DBD/> BEC> AAA>
//*[starts-with(name(),'B')]
<AAA> <BCC> <BBB/> <BBB/> <BBB/> BCC> <DDB> <BBB/> <BBB/> DDB> <BEC> <CCC/> <DBD/> BEC> AAA>
//*[contains(name(),'C')]
<AAA> <BCC> <BBB/> <BBB/> <BBB/> BCC> <DDB> <BBB/> <BBB/> DDB> <BEC> <CCC/> <DBD/> BEC> AAA>
8. string-length() :
//*[string-length(name()) = 3]
<AAA> <Q/> <SSSS/> <BB/> <CCC/> <DDDDDDDD/> <EEEE/> AAA>
//*[string-length(name()) < 3]
<AAA> <Q/> <SSSS/> <BB/> <CCC/> <DDDDDDDD/> <EEEE/> AAA>
//*[string-length(name()) > 3]
<AAA> <Q/> <SSSS/> <BB/> <CCC/> <DDDDDDDD/> <EEEE/> AAA>
9. "|" :
//CCC | //BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> DDD> <EEE/> AAA>
/AAA/EEE | //BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> DDD> <EEE/> AAA>
/AAA/EEE | //DDD/CCC | /AAA | //BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> DDD> <EEE/> AAA>
|