1.6.0 • Published 1 year ago

@j3lte/react-xml-view v1.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

react-xml-view

npm License GitHub Bugs GitHub issues GitHub last commit GitHub Workflow Status Codecov npm type definitions Bundlephobia DeepScan grade

A simple React component to display XML in a tree view.

xml-viewer

Codesandbox Demo

Edit react-xml-view

Install

npm install --save @j3lte/react-xml-view

Usage

import React from 'react';
import { XmlView } from '@j3lte/react-xml-view';

const xml = '<hello>World</hello>'

export const App = () => {
  return (
	<XmlView xml={xml} />
  );
}

Note: The viewer will NOT show the XML declaration (example: <?xml version="1.0" encoding="UTF-8"?>). This is due to a limitation in the XML parser.

See this explanation

Props

NameTypeDefaultRequiredDescription
xmlstringYesThe XML to display. XML should have UTF-8 character encoding, other encodings are not supported
classNamesobjectundefinedNoThe class names to use. See below for more information
cleanEmptyTextNodesbooleanfalseNoTry to clean up empty text nodes.
collapsedboolean/numberfalseNoWhether the tree start as collapsed or not. If this is a number (n > -1), it will be the level to collapse to. Root starts at level 0
collapsiblebooleanfalseNoWhether the tree can be collapsed or not
indentSizenumber2NoThe number of spaces to indent each level
indentUseTabsbooleanfalseNoUse tabs instead of spaces for indentation
invalidXMLRendererFunctionundefinedNo(error: Error) => JSX.Element. A function to render the error when the XML is invalid.
onClickElementFunctionundefinedNo(element: XmlElement) => void. A function to call when an element is clicked. The element is the XmlElement that was clicked.
parserOptionsobjectundefinedNoThe options to pass to the parser. See @rgrove/parse-xml API DOCS
themeobject/booleanundefinedNoThe theme to use. When undefined, it uses the standard theme. If this is set to false, it completely disables the theme. See below for more information

Theme

The theme object can contain the following properties:

NameTypeDefaultDescription
attributeKeyColorstring / boolean"#2a7ab0"set the attribute key color (<tag attribute-key="hello" />)
attributeValueColorstring / boolean"#008000"set the attribute value color (<tag attr="Attribute value">)
cdataColorstring / boolean"#1D781D"set the cdata element color (<![CDATA[some stuff]]>)
commentColorstring / boolean"#aaa"set the comment color (<!-- this is a comment -->)
separatorColorstring / boolean"#333"set the separators colors (<, >, </, />, =, <?, ?>)
tagColorstring / boolean"#d43900"set the tag name color (<tag-name />)
textColorstring / boolean"#333"set the text color (<tag>Text</tag>)
overflowBreakbooleanfalseadjust the xml to fit in the parent width without overflowing

Note: for each color in the theme, you can set it to false to disable it. It will omit the style attribute for that color.

Class names

The class names object can contain the following properties, feel free to override them.

NameDefault
attributeList"xml-attribute-list"
attribute"xml-attribute"
attributeKey"xml-attribute-key"
attributeValue"xml-attribute-value"
cdata"xml-cdata"
comment"xml-comment"
element"xml-element"
elementChildren"xml-element-children"
instruction"xml-instruction"
separator"xml-separator"
tag"xml-tag"
text"xml-text"

Acknowledgement

This XML Viewer is based on react-xml-viewer, see the original here.

License

MIT © Jelte Lagendijk

1.6.0

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago