CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-xml2json

Converts XML to JSON and vice-versa using node-expat parser

Overall
score

93%

Overview
Eval results
Files

task.mdevals/scenario-10/

Trimmed Manifest Parser

Convert an inbound shipment manifest expressed as XML into a clean JSON object that relies on whitespace trimming and non-reversible text node collapsing.

Capabilities

Cleans header fields

  • Given <report><status> ok </status><message>\n Ready for dispatch </message></report>, return { status: "ok", message: "Ready for dispatch" } when requested as an object, trimming surrounding whitespace and avoiding text-node wrappers. @test

Collapses text nodes for repeated entries

  • For <report><package id="A1"> Fragile </package><package id="B2">\nHeavy\n</package></report>, return { packages: [{ id: "A1", note: "Fragile" }, { id: "B2", note: "Heavy" }] } with text values as plain strings (no $t or similar). @test

Ignores indent-only text nodes

  • When the XML includes indentation-only whitespace between elements (e.g., <report>\n <status> ok </status>\n <package id="X"> Packed </package>\n</report>), ignore those whitespace-only nodes and emit trimmed text only for elements carrying content. @test

Implementation

@generates

API

export interface PackageEntry {
  id: string;
  note: string;
}

export interface CleanReport {
  status: string;
  message?: string;
  packages: PackageEntry[];
}

/**
 * Parse manifest XML into a clean object with trimmed text values and collapsed text nodes.
 */
export function parseReport(xml: string): CleanReport;

Dependencies { .dependencies }

xml2json { .dependency }

Provides XML to JSON conversion with whitespace trimming and non-reversible text node collapsing.

Install with Tessl CLI

npx tessl i tessl/npm-xml2json

tile.json