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