我可以使用一些幫助與我的XML轉換XML格式和可重用性,我認爲其他類似的問題,但因爲我的XML模式是我在應用它的麻煩有點尷尬。XSLT-更改
這裏是XML格式,我有
<root>
<row>
<var name="Name" value="Rusell" />
<var name=" Surname" value=" Anthony" />
<var name=" Country" value=" UK" />
<var name=" Job" value="Web Designer" />
<var name=" Cabin" value="345" />
</row>
<row>
<var name="Name" value="Wolf" />
<var name=" Surname" value=" Werner" />
<var name=" Country" value=" Germany" />
<var name=" Job" value="Linux IT" />
<var name=" Cabin" value="234" />
</row>
</root>
而這正是我希望它看起來像這樣我可以輕鬆地訪問領域。
<root>
<row name="Rusell" surName="Anthony" country="UK" job="Web Designer" cabin="345" />
<row name="Wolf" surname="Werner" country="Germany" job="Linux IT" cabin="234" />
</row>
至於格式化的進行,這是我所擁有的遠這樣的值沒有插入,我已經取得了進展。
<root>
<row Name="" Surname="" Country="" Job="" Cabin="" />
<row Name="" Surname="" Country="" Job="" Cabin="" />
<row Name="" Surname="" Country="" Job="" Cabin="" />
<row Name="" Surname="" Country="" Job="" Cabin="" />
</root>
這裏是我的XSLT文件 - 利用價值的選擇我有不同的語法,這是隻是爲了顯示我曾嘗試時,您會發現一對夫婦的屬性。
<xsl:template match="/">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="row">
<row>
<xsl:attribute name="Name">
<xsl:value-of select="value"/>
</xsl:attribute>
<xsl:attribute name="Surname">
<xsl:value-of select="row/root/name/value"/>
</xsl:attribute>
<xsl:attribute name="Country">
<xsl:value-of select="root/row/value"/>
</xsl:attribute>
<xsl:attribute name="Job">
<xsl:value-of select="@value"/>
</xsl:attribute>
<xsl:attribute name="Cabin">
<xsl:value-of select="value"/>
</xsl:attribute>
</row>
</xsl:template>
此外,關於重新可用性問題,上述方法是好的,當我知道的字段和屬性,但我將採取不同的XML文件有可能更多的領域即地址,年齡。
那麼我將如何去創造一個XSLT文件,做了以下內容:
For each Node = root/row
Create row = ([email protected] & [email protected])
IE一樣東西我想上面的事,但可重複使用的,如我不需要知道名字的值(姓,機艙等),所以它適用於我的第一個XML文件,以下。
<root>
<row>
<var name="differentName" value="x" />
<var name="anotherdifferentname" value="y" />
</row>
</root>
如果我需要更清楚,請讓我知道,並提前致謝。
你已經給出答案,但有時候我覺得告訴人們他們做錯了什麼是更重要的。基本上你的路徑遍佈整個地方,它們看起來像是瘋狂的猜測。在符合行模板,路徑安東尼'變種[@名稱=「姓」]/@ value' - 也就是說,選擇子「VAR」元素,其「name」屬性等於「姓」,然後選擇這個'var'元素的'value'屬性。 –
是的,我讚賞你的批評,我對XSL無能爲力,這對你來說可能是顯而易見的。謝謝你解釋語法 – user123
@Michael Kay - 如果你給你的評論一個答案,這樣我們就可以對它進行投票(是的,我知道OP已經接受了另一個,但你的解決方案更合適)。 – Perception