
Product
Socket Now Protects the Chrome Extension Ecosystem
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
======================================================================
\// ||/|| || _ ||/|| ||@|| ++ ||@|| ||))
//\ || || ||_ || || |||| || |||| ||\
====================================================================== v 0.1.1
@GitHub: https://github.com/abhishekkr/rubygem_xml_motor @RubyGems: http://rubygems.org/gems/xml-motor
the main development for this algo (to be done in other languages too) is handled in https://github.com/abhishekkr/axml-motor and you could find the test-cases in there too, to proceed on your own
A new short XML Parsing Algorithm implemented directly in >500 lines. An easy-to-use XML Parser without any Native Dependencies. [How To Use]:
Loading:
+ $ gem install xml-motor
+ 'require' the 'xml-motor'
Usage:
[[ To Fetch Just Attribute Values ]]
str = {XML_DATA}
nodes_ = XMLMotor.splitter str
tags_ = XMLMotor.splitter nodes_
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_, <_TAG_>
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_, <_TAG_>, "ATTRIB_KEY"
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_, <_TAG_>, "ATTRIB_KEY="
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_, <_TAG_>, "ATTRIB_KEY=ATTRIB_VALUE"
XMLMotor.xmlattrib 'attrib_to_fetch_value', nodes_, tags_, <_TAG_>, "=ATTRIB_VALUE"
[[ To Search More Than One QUERIES ]]
str = {XML_DATA}
nodes_ = XMLMotor.splitter str
tags_ = XMLMotor.indexify nodes_
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_"
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_", "ATTRIB_KEY=ATTRIB_VALUE"
nodes_array = XMLMotor.xmldata nodes_, tags_, nil, "ATTRIB_KEY=ATTRIB_VALUE"
nodes_array = XMLMotor.xmldata nodes_, tags_, nil, "ATTRIB_KEY"
nodes_array = XMLMotor.xmldata nodes_, tags_, nil, "='ATTRIB_VALUE'"
>>>>> for having root-node-tag also in returned result <<<<<
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_", nil, true
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_", "ATTRIB_KEY=ATTRIB_VALUE", true
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_", ["ATTRIB_KEY=ATTRIB_VALUE"], true
nodes_array = XMLMotor.xmldata nodes_, tags_, "_TAG_", ["KEY1=VALUE1", "KEY2=VALUE2"...], true
nodes_array = XMLMotor.xmldata nodes_, tags_, nil, ["KEY1=VALUE1", "KEY2=VALUE2"...], true
nodes_array = XMLMotor.xmldata nodes_, tags_, nil, "ATTRIB_KEY=ATTRIB_VALUE", true
[[ To Search Just One QUERY ]]
nodes_array = XMLMotor.get_node_from_file "_XML_FILE_", "_TAG_"
nodes_array = XMLMotor.get_node_from_file "_XML_FILE_", "_TAG_", "ATTRIB_KEY=ATTRIB_VALUE"
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_"
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_", "ATTRIB_KEY=ATTRIB_VALUE"
nodes_array = XMLMotor.get_node_from_file "_XML_FILE_", nil, "ATTRIB_KEY=ATTRIB_VALUE"
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", nil, "ATTRIB_KEY=ATTRIB_VALUE"
>>>>> for having root-node-tag also in returned result <<<<<
nodes_array = XMLMotor.get_node_from_file "_XML_FILE_", "_TAG_", nil, true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_", "ATTRIB_KEY=ATTRIB_VALUE", true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_", ["ATTRIB_KEY=ATTRIB_VALUE"], true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_", ["KEY1=VALUE1", "KEY2=VALUE2"...], true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", "_TAG_", ["KEY1=VALUE1", "KEY2=VALUE2"...], true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", nil, "ATTRIB_KEY=ATTRIB_VALUE", true
nodes_array = XMLMotor.get_node_from_content "_XML_DATA_", nil, ["KEY1=VALUE1", "KEY2=VALUE2"...], true
Example Calls As Code:
+ XMLMotor.get_node_from_content "<A>a</A><B><A>ba</A></B>", "A"
RETURNS: ["a", "ba"]
+ XMLMotor.get_node_from_content "<A>a</A><B><A>ba</A></B>", "B.A"
RETURNS: ["ba"]
+ XMLMotor.get_node_from_content "<A i='1'>a</A><B><A i='2'>ba</A></B>", "A", "i='1'"
RETURNS: ["a"]
=====================================================================
FAQs
Unknown package
We found that xml-motor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.