代码之家  ›  专栏  ›  技术社区  ›  dacracot

如何使用Java EE JAXB从xsl输出读取媒体类型属性?

  •  0
  • dacracot  · 技术社区  · 5 年前

    <xsl:output method="text" media-type="application/json" encoding="UTF-8"/> 标签。

    我使用saxon9将XML转换为JSON。

    Transformer transformer = tFactory.newTransformer(new StreamSource(xslUrl));
    ByteArrayInputStream xmlStream = new ByteArrayInputStream(xml.getBytes());
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutputStream dataOut = new DataOutputStream(baos);
    transformer.transform(new StreamSource(xmlStream), new StreamResult(new OutputStreamWriter(dataOut)));
    String output = baos.toString();
    

    我怎样才能将MIME读作“application/json”?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Michael Kay    5 年前

    你不一定。例如,如果输出被写入文件存储中的文件,那么大多数操作系统不允许在文件元数据中捕获媒体类型,因此它将丢失。

    当然,ByteArrayOutputStream不会捕获任何有关媒体类型的信息。

        2
  •  1
  •   dacracot    5 年前

    这是从xsl:output media_type。

    String mime = transformer.getOutputProperty(OutputKeys.MEDIA_TYPE);