Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.20
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
ruby-xpath /
[ HOME SHELL ]
Name
Size
Permission
Action
README.md
2.06
KB
-rw-r--r--
changelog.Debian.gz
617
B
-rw-r--r--
copyright
1.33
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : README.md
# XPath XPath is a Ruby DSL around a subset of XPath 1.0. Its primary purpose is to facilitate writing complex XPath queries from Ruby code. [](http://badge.fury.io/rb/xpath) [](http://travis-ci.org/teamcapybara/xpath) ## Generating expressions To create quick, one-off expressions, `XPath.generate` can be used: ``` ruby XPath.generate { |x| x.descendant(:ul)[x.attr(:id) == 'foo'] } ``` You can also call expression methods directly on the `XPath` module: ``` ruby XPath.descendant(:ul)[XPath.attr(:id) == 'foo'] ``` However for more complex expressions, it is probably more convenient to include the `XPath` module into your own class or module: ``` ruby module MyXPaths include XPath def foo_ul descendant(:ul)[attr(:id) == 'foo'] end def password_field(id) descendant(:input)[attr(:type) == 'password'][attr(:id) == id] end end ``` Both ways return an `XPath::Expression` instance, which can be further modified. To convert the expression to a string, just call `#to_s` on it. All available expressions are defined in `XPath::DSL`. ## String, Hashes and Symbols When you send a string as an argument to any XPath function, XPath assumes this to be a string literal. On the other hand if you send in Symbol, XPath assumes this to be an XPath literal. Thus the following two statements are not equivalent: ``` ruby XPath.descendant(:p)[XPath.attr(:id) == 'foo'] XPath.descendant(:p)[XPath.attr(:id) == :foo] ``` These are the XPath expressions that these would be translated to: ``` .//p[@id = 'foo'] .//p[@id = foo] ``` The second expression would match any p tag whose id attribute matches a 'foo' tag it contains. Most likely this is not what you want. In fact anything other than a String is treated as a literal. Thus the following works as expected: ``` ruby XPath.descendant(:p)[1] ``` Keep in mind that XPath is 1-indexed and not 0-indexed like most other programming languages, including Ruby. ## License See [LICENSE](LICENSE).
Close