xml-display-component

WebJar for xml-display-component

License

License

MIT
GroupId

GroupId

org.webjars.bower
ArtifactId

ArtifactId

xml-display-component
Last Version

Last Version

0.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

xml-display-component
WebJar for xml-display-component
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/marushkevych/xml-display-component

Download xml-display-component

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.bower/xml-display-component/ -->
<dependency>
    <groupId>org.webjars.bower</groupId>
    <artifactId>xml-display-component</artifactId>
    <version>0.1.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.bower/xml-display-component/
implementation 'org.webjars.bower:xml-display-component:0.1.1'
// https://jarcasting.com/artifacts/org.webjars.bower/xml-display-component/
implementation ("org.webjars.bower:xml-display-component:0.1.1")
'org.webjars.bower:xml-display-component:jar:0.1.1'
<dependency org="org.webjars.bower" name="xml-display-component" rev="0.1.1">
  <artifact name="xml-display-component" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.bower', module='xml-display-component', version='0.1.1')
)
libraryDependencies += "org.webjars.bower" % "xml-display-component" % "0.1.1"
[org.webjars.bower/xml-display-component "0.1.1"]

Dependencies

compile (2)

Group / Artifact Type Version
org.webjars.bower : underscore jar [1.7.0,1.8)
org.webjars.bower : react jar [0.12.2,0.13)

Project Modules

There are no modules declared in this project.

xml-display-component

Render xml as expandable tree using ultrafast React.js

Here is how it looks in the browser:

example

Note: starting from version 0.1.0, its compatible with Angular.js (not using <a> tag)

Install

bower install xml-display-component --save

<script src="bower_components/react/react-with-addons.min.js"></script>
<script src="bower_components/underscore/underscore-min.js"></script>
<script src="bower_components/xml-display-component/xml-display-component.js"></script>

Usage

This package exposes global variable XmlDisplayComponent

Say you have following html

<body>
    <div id="content"></div>
</body>

Use following script to render xml in content div:

React.render(
    React.createElement(XmlDisplayComponent, {data: xml, expanded: true}),
    document.getElementById('content')
);

where xml is JSON object - representation of xml file. See below...

Using with Angular.js

React.js integrates nicely with Angular, simply wrap React component with angular directive:

// angular directive
function displayXmlTree() {
    return {
        scope: {
            xml: '=displayXmlTree'
        },
        link: function(scope, el) {
            React.render(
                React.createElement(XmlDisplayComponent, {data: scope.xml, expanded: true}),
                el[0]
            );
        }
    };
}

And then use it like this:

<!-- xmlJson is a scope variable with json representation of xml-->
<div display-xml-tree="xmlJson"></div>

JSON representation of xml

The following xml:

<rootNode>  
    <child foo="bar">  
        <element1> value </element1>
        <element2> another value </element2>
    </child>
    <emptyElement/>  
</rootNode>

Must be represented as:

{
  "name": "rootNode",
  "nodes": [
    {
      "name": "child",
      "attrs": {"foo":"bar"},
      "nodes": [
        {
          "name": "element1",
          "value": "value"
        },
        {
          "name": "element2",
          "value": "another value"
        },
      ]
    },
    {
       "name": "emptyElement"
    }
  ]
};

See example/xml.js

Example

To run the example

  • change to example folder

  • install dependencies

    bower install
    
  • then navigate to index.html in your browser

Styling

See example/styles.css for recommended styling

To enable folding of elements use:

div.hidden {
  display: none;
}

Versions

Version
0.1.1