node.jsを使用して以下のXMLを検証したいとします。誰もWindows/Linux上で動作する良いnode.jsモジュールをお勧めしますか?node.jsを使用してXML構文/構造を検証する
- 検証XML構文
- 検証XML構造(スキーマ)事前に
感謝。
node.jsを使用して以下のXMLを検証したいとします。誰もWindows/Linux上で動作する良いnode.jsモジュールをお勧めしますか?node.jsを使用してXML構文/構造を検証する
感謝。
UPDATE
はconrad10781の回答を参照してください。この回答は、リンクされた元のWikiページがアーカイブされているので時代遅れですが、どのモジュールが構文とスキーマの両方を検証できるかを強調しました。
時代遅れINFO
npmを介して利用可能なXMLパーサの茄多があります。
ネイティブ実装(node-expatなど)では、モジュールがWindowsとLinuxの両方で動作するようにするためにC++拡張モジュールをビルドする必要がありますが、特に、大規模なXMLファイルを扱っている場合は特にそうです。
xmldomは、文字列から非常に単純なXML解析を提供できるはずです。次に、解析の出力に応じてtrue/falseを返す関数を作成できます(DOMParserがエラーを返す方法を確認してください)。
これは古いポストだと知っていますが、私はそれを見つけました。残念なことに、Ankitの答えはひどく役に立ちませんでした。入力が有効なXML構文であるかどうかは、OPの一部であったスキーマに準拠しているかどうかにはまったく関係がありませんでした。
私はlibxmljsがあなたの探しているものに最適なソリューションであることを発見しました。解析することができ、基本的な文字列と詳細な構造を検証することができます。
var xsd = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="comment" type="xs:string"/></xs:schema>';
var xml_valid = '<?xml version="1.0"?><comment>A comment</comment>';
var xml_invalid = '<?xml version="1.0"?><commentt>A comment</commentt>';
var xsdDoc = libxml.parseXml(xsd);
var xmlDocValid = libxml.parseXml(xml_valid);
var xmlDocInvalid = libxml.parseXml(xml_invalid);
assert.equal(xmlDocValid.validate(xsdDoc), true);
assert.equal(xmlDocInvalid.validate(xsdDoc), false);
最初のリンク:特定の構造/スキーマのチェックの例のようなものとなり
:
XML構文のチェックの例のようなものとなりますto XML Parser Modulesが壊れています。 – spoulson
@spoulsonそれを私の注意を引くことに感謝します。 npmウェブサイトを直接指すように解決しました。 –