解析nodejs中的xml文件时解析实体

时间:2014-11-29 08:00:54

标签: xml node.js

我的xml文件有

<!DOCTYPE application [<!ENTITY % common  SYSTEM "../common.ent">
%common;]>

并且我使用了&commonFaults;(这是./common.ent文件中定义的实体之一),许多位于xml文件中

在我的节点应用程序中,我想输入stringifed xml文件内容。 作为回报,我想要解决所有实体。

输入

<?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE application [<!ENTITY % common  SYSTEM "../common.ent">
    %common;]>
    <application xmlns="http://wadl.dev.java.net/2009/02">
        <grammars>
            <include href="../xsd/api.xsd"/>
            <include href="../xsd/api-common.xsd"/>
        </grammars>
        <method name="GET" id="listVersionsv2">
             &commonFaults;
        </method>
    </application>

common.ent文件:

 <!ENTITY commonFaults
           '
        <response status="503" xmlns="http://wadl.dev.java.net/2009/02">
            <representation mediaType="application/xml" element="csapi:serviceUnavailable"/>
            <representation mediaType="application/json"/>
        </response>
        <response status="400" xmlns="http://wadl.dev.java.net/2009/02">
            <representation mediaType="application/xml" element="csapi:badRequest"/>
            <representation mediaType="application/json"/>
        </response>
           '>

期望的输出

<?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE application [<!ENTITY % common  SYSTEM "../common.ent">
    %common;]>
    <application xmlns="http://wadl.dev.java.net/2009/02">
        <grammars>
            <include href="../xsd/api.xsd"/>
            <include href="../xsd/api-common.xsd"/>
        </grammars>
        <method name="GET" id="listVersionsv2">
        <response status="503" xmlns="http://wadl.dev.java.net/2009/02">
            <representation mediaType="application/xml" element="csapi:serviceUnavailable"/>
            <representation mediaType="application/json"/>
        </response>
        <response status="400" xmlns="http://wadl.dev.java.net/2009/02">
            <representation mediaType="application/xml" element="csapi:badRequest"/>
            <representation mediaType="application/json"/>
        </response>
        </method>
    </application>

我使用xmllint选项搜索--noent,这样做有效。

我正在寻找一个类似的lib /工具,它作为npm模块执行此操作,我可以要求&#39;在节点应用程序中完成与xmllint相同的任务。

我不想使用节点的ChildProcess。

0 个答案:

没有答案