CSStoXML v1.02
CSStoXML is a little command-line java-tool based on CSSParser for converting CSS2 to XML. There is also an option to XSL-transform generated XML. Requires JRE 1.4 or higher.
Downloads
- http://appro.mit.jyu.fi/tools/csstoxml/csstoxml.jar - executable java package
- http://appro.mit.jyu.fi/tools/csstoxml/csstoxml_source.zip - source code
License
Copyright Jukka Mäntylä (jmantyla@mit.jyu.fi). Licensed under GNU Lesser General Public License.
Usage
Command-line interface:
USAGE: java -jar csstoxml.jar <url> [(-x|--xslsheet) <xslstylesheet>] [(-m|--media) <media>] <url> Valid URL containing CSS2-stylesheet. [(-x|--xslsheet) <xslstylesheet>] XSL-stylesheet for transformation [(-m|--media) <media>] Comma-separated medialist for CSS-stylesheet. Must not contain spaces.
Output format
Document Type Definition (DTD)
<!DOCTYPE css [ <!ELEMENT css (media)* > <!ELEMENT media (import|page|font-face|media|selector)*> <!ATTLIST media type CDATA "all"> <!ELEMENT import (url+)> <!ATTLIST import media CDATA #IMPLIED> <!ELEMENT url (#PCDATA)> <!ELEMENT page (property*)> <!ATTLIST page name CDATA #IMPLIED> <!ATTLIST page selector CDATA #IMPLIED> <!ELEMENT font-face (property*)> <!ELEMENT selector (simple+,property+)> <!ELEMENT simple (#PCDATA)> <!ATTLIST simple type CDATA "0"> <!ELEMENT property (name,value+)> <!ATTLIST property important CDATA #IMPLIED> <!ELEMENT name (#PCDATA)> <!ELEMENT value (operator|inherit|integer|number|unit|url|text|nest)*> <!ATTLIST value type CDATA #REQUIRED> <!ELEMENT operator (#PCDATA)> <!ELEMENT inherit EMPTY> <!ELEMENT integer (#PCDATA)> <!ELEMENT number (#PCDATA)> <!ELEMENT unit (#PCDATA)> <!ELEMENT text (#PCDATA)> <!ELEMENT nest (name,params)> <!ELEMENT params (operator|integer|number|unit|url|text|param)*> <!ELEMENT param (#PCDATA)> ]>
Output example
Output looks something like this:
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE css [ -- snip -- ]> <css> <media type="all"> <selector> <simple type="4">html</simple> <property> <name>width</name> <value type="23"> <number>95.0</number> <unit>%</unit> </value> </property> </selector> <selector> <simple type="10">*.area</simple> <simple type="0">div.test</simple> <property> <name>font-family</name> <value type="36"> <text>Courier New</text> </value> <value type="35"> <text>sans-serif</text> </value> </property> <property> <name>background-color</name> <value type="27"> <nest> <name>rgb</name> <params> <integer>176</integer> <integer>196</integer> <integer>222</integer> </params> </nest> </value> </property> </selector> </media> </css>
Types
Selectors and types are also represented in numbers. Here is a list for equivalents:
SAC_OPERATOR_COMMA = 0; SAC_OPERATOR_PLUS = 1; SAC_OPERATOR_MINUS = 2; SAC_OPERATOR_MULTIPLY = 3; SAC_OPERATOR_SLASH = 4; SAC_OPERATOR_MOD = 5; SAC_OPERATOR_EXP = 6; SAC_OPERATOR_LT = 7; SAC_OPERATOR_GT = 8; SAC_OPERATOR_LE = 9; SAC_OPERATOR_GE = 10; SAC_OPERATOR_TILDE = 11; SAC_INHERIT = 12; SAC_INTEGER = 13; SAC_REAL = 14; SAC_EM = 15; SAC_EX = 16; SAC_PIXEL = 17; SAC_INCH = 18; SAC_CENTIMETER = 19; SAC_MILLIMETER = 20; SAC_POINT = 21; SAC_PICA = 22; SAC_PERCENTAGE = 23; SAC_URI = 24; SAC_COUNTER_FUNCTION = 25; SAC_COUNTERS_FUNCTION = 26; SAC_RGBCOLOR = 27; SAC_DEGREE = 28; SAC_GRADIAN = 29; SAC_RADIAN = 30; SAC_MILLISECOND = 31; SAC_SECOND = 32; SAC_HERTZ = 33; SAC_KILOHERTZ = 34; SAC_IDENT = 35; SAC_STRING_VALUE = 36; SAC_ATTR = 37; SAC_RECT_FUNCTION = 38; SAC_UNICODERANGE = 39; SAC_SUB_EXPRESSION = 40; SAC_FUNCTION = 41; SAC_DIMENSION = 42;
Selectors
SAC_CONDITIONAL_SELECTOR = 0; SAC_ANY_NODE_SELECTOR = 1; SAC_ROOT_NODE_SELECTOR = 2; SAC_NEGATIVE_SELECTOR = 3; SAC_ELEMENT_NODE_SELECTOR = 4; SAC_TEXT_NODE_SELECTOR = 5; SAC_CDATA_SECTION_NODE_SELECTOR = 6; SAC_PROCESSING_INSTRUCTION_NODE_SELECTOR = 7; SAC_COMMENT_NODE_SELECTOR = 8; SAC_PSEUDO_ELEMENT_SELECTOR = 9; SAC_DESCENDANT_SELECTOR = 10; SAC_CHILD_SELECTOR = 11; SAC_DIRECT_ADJACENT_SELECTOR = 12;
Käyttäjien kommentit