1

私は org.w3c.xml Java ライブラリを使用していますが、いくつかのタスクを実行する際にいくつかの問題が発生しています。

  1. Element オブジェクトがあります。それと前任者から名前空間を削除するにはどうすればよいですか?
  2. 名前空間なしでドキュメントを作成するにはどうすればよいですか? 私が試してみました

    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    docBuilderFactory.setNamespaceAware(false);
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    Document doc = docBuilder.parse (new File("C:/Temp/XMLFiles/"+fileName+".xml"));
    

    有望に見えますが、実際には機能しません。私はまだ名前空間を含むドキュメントを取得しています。

  3. 要素からドキュメントを作成するにはどうすればよいですか?

    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
    doc.adoptNode(dataDefinition);
    

    dataDefinition は要素ですが、機能しませんでした。私は何を間違っていますか?

4

1 に答える 1

0

次のXSLで変換してみてください。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>

<xsl:template match="/|comment()|processing-instruction()">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
</xsl:template>

<xsl:template match="*">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>

<xsl:template match="@*">
    <xsl:attribute name="{local-name()}">
      <xsl:value-of select="."/>
    </xsl:attribute>
</xsl:template>
</xsl:stylesheet>

Transformer xformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new FileInputStream("xform.xsl")));
StringWriter writer = new StringWriter();
xformer.transform(new StreamSource(new FileInputStream("input.xml")), new StreamResult(writer));
System.out.println(writer.toString());
于 2010-01-19T18:03:13.787 に答える