2017-05-25 1 views
0

不規則な/フォーマットされていないXMLファイルがあります。構造は、私は、CSV形式のXMLから<element1>を抽出したいthis-不規則なXMLの特定の要素をCSV形式に抽出するXSLT

<Host> 
<element1>type0</element1> 
<element2>Fruits</element2> 
<NodeA> 
    <element1>type1</element1> 
    <element2>Fruits</element2> 
    <NodeB> 
    <element1>type2</element1> 
    <element2>Fruits</element2> 
    <NodeC> 
     <element1>type3</element1> 
     <element2>Fruits</element2> 
     <NodeD> 
     <element1>type4</element1> 
     <element2>Vegetables</element2> 
     </NodeD> 
    </NodeC> 
    </NodeB> 
</NodeA> 
<NodeE> 
    <element1>type5</element1> 
    <element2>Fruits</element2> 
    <NodeF> 
    <element1>type6</element1> 
    <element2>Vegetables</element2> 
    </NodeF> 
</NodeE> 
</Host> 

のように見えます。 <element1>のすべての値をとして抽出されなければならないことを意味する -

type0,type1,type2,type3,type4,type5,type6 

私は以下のXSLTを試してみましたが、私は表形式で要素を取得しています。私は上記の形式でデータを取得することができませんでした。書かれた XSLT -

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <table border="1"> 
    <xsl:for-each select="//element1"> 
    <tr> 
     <td><xsl:value-of select="."/></td> 
    </tr> 
    </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

どれ答え/提案は大きな助けになります。ありがとう

答えて

0

あなたはCSV結果をしたい場合は、すべてのHTMLコードを取り除くと、ちょうどそれが必要なのカンマ追加:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text" encoding="UTF-8" /> 

<xsl:template match="/"> 
    <xsl:for-each select="//element1"> 
     <xsl:value-of select="."/> 
     <xsl:if test="position()!=last()">,</xsl:if> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 
+0

こんにちは@ Michael.hor257kを、答えをありがとう。出力を一重引用符で表示したい場合の論理は何ですか? 'type0'、 'type1'、 'type2' ...のように入力します。 –

+0

@QATesting値の前後に ' ''を追加します。 –

+0

こんにちは@ michael.hor257k、私はの1000の値を1つのセットにグループ化しなければならないという追加要件があります。私は 'type0'、 'type1'、 'type2'、.... 'typen'形式の値を抽出して、1000の値しか許さないsql query IN条件への入力として渡しています。今度は1000個の値を1つのセットにまとめ、それをクエリに渡したいと思います。これで私を助けてください。 –

関連する問題