0

私はxsltが初めてです。

私が欲しいのは、xsltを適用して入力xmlからタグ名を取得し、出力をoutput.xmlに保存することです

私のinput.xmlは -

<?xml version="1.0" encoding="UTF-8"?>
<productDetails>
<name>Mobile</name>
<price>999</price>
<stock>57</stock>
</productDetails>

私のinput.xslは -

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

<xsl:template match="/productDetails">
   <xsl:attribute name="name()"/>   
</xsl:template>
</xsl:stylesheet>

私のJavaコードは -

   Source xmlInput = new StreamSource("input.xml");
    Source xsl = new StreamSource(new File("input.xsl"));
    Result xmlOutput = new StreamResult(new File("output.xml"));


        Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
        transformer.transform(xmlInput, xmlOutput);

私が欲しいものを出力するのは -

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

誰か助けてください

前もって感謝します。

4

1 に答える 1

1

テンプレートを書く

<xsl:template match="*">
  <xsl:value-of select="name()"/>
</xsl:template>

入力内のすべての要素の名前を出力する場合。葉の要素の名前だけが必要な場合は、

<xsl:template match="*[not(*)]">
  <xsl:value-of select="name()"/>
</xsl:template>

結果のフォーマットを改善するために、空白を追加する必要があるか、追加する必要がある場合があります。また、XML結果が必要だと言ったわけではありませんが、メインレベルの純粋なテキストノードで示した結果サンプルは、整形式のXMLドキュメントではありません。ただし、XSLTではそのようなフラグメントの出力が許可されているため、その形式が必要な場合は、私の提案で行う必要があります。

于 2012-11-03T12:45:49.703 に答える