2010-03-03 118 views
0

我有一個XML文件,該文件是在這種形式:轉換多個標籤XML到單個標籤的屬性

<row> 
    <field name="id">18</field> 
    <field name="lat">40.7560540000</field> 
    <field name="lng">-73.9869510000</field> 
    <field name="body">Students arriving from Haiti say they’re having a hard time getting placed in city schools.</field> 
</row> 

我想這些多個標籤進行組合,並得到這種形式的XML(組合多個標籤屬性的單個標籤):

<row id="18" lat="40.7560540000" lng="-73.9869510000" body="Students arriving from Haiti say they’re having a hard time getting placed in city schools."> 
</row> 

是否有可能這樣做?如果是的話,有人可以告訴我如何進行這種轉變嗎?提前致謝。

回答

0

是的,這樣的改變是可能的。一個簡單的方法(這取決於你如何看待它)是一個XML轉換應用到它:

<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
> 
    <!-- the document element gets copied --> 
    <xsl:template match="/*"> 
    <xsl:copy> 
     <!-- transform any child <row> elements --> 
     <xsl:apply-templates select="row" /> 
    </xsl:copy> 
    </xsl:template> 

    <!-- <row> elements get copied, too --> 
    <xsl:template match="row"> 
    <xsl:copy> 
     <!-- transform any child <field> elements --> 
     <xsl:apply-templates select="field" /> 
    </xsl:copy> 
    </xsl:template> 

    <!-- <field> elements become attributes --> 
    <xsl:template match="field"> 
    <xsl:attribute name="{@name}"> 
     <!-- the value of the <field> becomes the attribute value --> 
     <xsl:value-of select="." /> 
    </xsl:attribute> 
    </xsl:template> 
</xsl:stylesheet> 

當適用於:

<rows> 
    <row> 
    <field name="id">18</field> 
    <field name="lat">40.7560540000</field> 
    <field name="lng">-73.9869510000</field> 
    <field name="body">Students arriving from Haiti say they’re having a hard time getting placed in city schools.</field> 
    </row> 
</rows> 

你:

<rows> 
    <row id="18" lat="40.7560540000" lng="-73.9869510000" body="Students arriving from Haiti say they’re having a hard time getting placed in city schools."></row> 
</rows> 
+0

感謝託默勒格。我曾經使用過一個mysql數據庫來存儲記錄。我只是使用以下命令將表格轉換爲xml格式: mysqldump --xml -u root -p [database-name] [tablename]> file.xml 所以現在我有一個普通的xml文件,只是由記錄組成。這個xslt在什麼地方出現?我在這個xslt相關的東西里很窮。請引導我。 – mamatha 2010-03-03 16:30:08

+0

有很多XSLT處理器可用。獨立的命令行工具以及編程語言集成的工具。選擇(「Google for」)處理器,該處理器可在您的環境中工作或適​​合您的處理鏈,讀取它的工作原理並將XML文件和XSL樣式表提供給它。 – Tomalak 2010-03-03 16:55:45

+0

@mamatha:您也可以等待,看看是否有其他建議更符合您的需求。與此同時,您可以(通過編輯問題)告訴您已經使用了哪些工具以及準備/可以使用哪些編程語言。 – Tomalak 2010-03-03 17:04:07