
Research
Security News
The Landscape of Malicious Open Source Packages: 2025 Mid‑Year Threat Report
A look at the top trends in how threat actors are weaponizing open source packages to deliver malware and persist across the software supply chain.
net.sf.cssbox:jstyleparser
Advanced tools
jStyleParser is a CSS parser written in Java. It has its own application interface that is designed to allow an efficient CSS processing in Java and mapping the values to the Java data types. It parses CSS 2.1 style sheets into structures that can be efficiently assigned to DOM elements. It is intended be the primary CSS parser for the CSSBox library. While handling errors, it is user agent conforming according to the CSS specification.
jStyleParser is a Java library for parsing CSS style sheets and assigning styles to the HTML or XML document elements according to the CSS 3 specifications. It allows parsing the individual CSS files as well as computing the efficient style of the DOM elements.
See the project page for more information: http://cssbox.sourceforge.net/jstyleparser
With Maven, use the following dependency:
<dependency>
<groupId>net.sf.cssbox</groupId>
<artifactId>jstyleparser</artifactId>
<version>4.0.0</version>
</dependency>
The basic CSSFactory
interface provides functions parsing CSS strings, files or URLs. The parsed style sheet
is represented by the corresponding data structures that allow accessing all parts of the style sheet
in a type-safe way.
String css = "div { background-color: red; width: 12px; }";
//parse the style sheet
StyleSheet sheet = CSSFactory.parseString(css, new URL("http://base.url"));
//access the rules and declarations
RuleSet rule = (RuleSet) sheet.get(0); //get the first rule
CombinedSelector selector = rule.getSelectors()[0]; //read the 'div' selector
Declaration bgDecl = rule.get(0); //read the 'background-color' declaration
String bgProperty = bgDecl.getProperty(); //read the property name
TermColor color = (TermColor) bgDecl.get(0); //read the color
//print the results
System.out.println(selector); //prints 'div'
System.out.println(bgProperty); //prints 'background-color'
System.out.println(color); //prints '#ff0000'
//or even print the entire style sheet (formatted)
System.out.println(sheet);
See the details in the documentation.
jStyleParser allows to map the style rules to the individual elements in a DOM tree based on their selectors. This allows obtaining the exact style for any HTML element.
org.w3c.dom.Document doc = ... //source DOM
MediaSpec media = new MediaSpecAll(); //use styles for all media
//create the style map
StyleMap map = CSSFactory.assignDOM(doc, "UTF-8", new URL("https://base.url/"), media, true);
//get the style of a single element
Element div = doc.getElementById("searchelement"); //choose a DOM element
NodeData style = map.get(div); //get the style map for the element
//get the type of the assigned value
CSSProperty.Margin mm = style.getProperty("margin-top");
System.out.println("margin-top=" + mm);
//if a length is specified, obtain the exact value
if (mm == Margin.length) {
TermLength mtop = style.getValue(TermLength.class, "margin-top");
System.out.println("value=" + mtop);
}
Some properties (e.g. background
) allow multiple values. In that case, the NodeData
interface
includes the getListSize()
method for getting the number of values specified and the getProperty()
and getValue()
functions with an index argument:
//get the style of a single element
Element div = doc.getElementById("searchelement"); //choose a DOM element
NodeData style = map.get(div); //get the style map for the element
//get the number of background images specified for the element
int bgcnt = style.getListSize("background-image", true);
//read all images
for (int index = 0; index < bgcnt; index++>) {
CSSProperty.BackgroundImage image = style.getProperty("background-image", index);
if (image == CSSProperty.BackgroundImage.uri) { //if the image is specified by its url
TermURI urlstring = style.getValue(TermURI.class, "background-image", index);
//... do something with the image url
}
}
See the details in the documentation.
All the source code of jStyleParser itself is licensed under the GNU Lesser General Public License (LGPL), version 3. A copy of the LGPL can be found in the LICENSE file.
FAQs
jStyleParser is a CSS parser written in Java. It has its own application interface that is designed to allow an efficient CSS processing in Java and mapping the values to the Java data types. It parses CSS 2.1 style sheets into structures that can be efficiently assigned to DOM elements. It is intended be the primary CSS parser for the CSSBox library. While handling errors, it is user agent conforming according to the CSS specification.
We found that net.sf.cssbox:jstyleparser demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers 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.
Research
Security News
A look at the top trends in how threat actors are weaponizing open source packages to deliver malware and persist across the software supply chain.
Security News
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.