Xslt XSL生成xml名称-值对
我正在使用XSLT1.0,我的输入xml如下Xslt XSL生成xml名称-值对,xslt,xslt-1.0,Xslt,Xslt 1.0,我正在使用XSLT1.0,我的输入xml如下 <?xml version="1.0" encoding="UTF-8"?> <Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <FirstName>John</FirstName> <LastName>Peter</LastName> <Initial>T</Initial>
<?xml version="1.0" encoding="UTF-8"?>
<Employee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<FirstName>John</FirstName>
<LastName>Peter</LastName>
<Initial>T</Initial>
<Spouse>
<FirstName>Rita</FirstName>
<LastName>Hudson</LastName>
</Spouse>
</Employee>
约翰
彼得
T
丽塔
哈德逊
我正在尝试编写一个xsl来生成以下输出
<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfstringVariable xmlns="http://schemas.abc.org/2004/07/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<stringVariable>
<name>ServerName</name>
<value>tmn.eu.com</value>
</stringVariable>
<stringVariable>
<name>EmpFirstName</name>
<value>John</value>
</stringVariable>
<stringVariable>
<name>EmpLastName</name>
<value>Peter</value>
</stringVariable>
<stringVariable>
<name>SpouseFirstName</name>
<value>Rita</value>
</stringVariable>
<stringVariable>
<name>SpouseLastName</name>
<value>Hudson</value>
</stringVariable>
</ArrayOfstringVariable>
服务器名
tmn.eu.com
名
约翰
雇主名称
彼得
第一个名字
丽塔
壶嘴姓氏
哈德逊
输出xml包含ArrayOfstringVariable stringVariable name值对。。
名称是硬编码的,值来自输入xml。。
名称值“ServerName”是硬编码的
我尝试使用下面的xsl代码,但它使用输入xml中的所有元素创建名称-值对
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" omit-xml-declaration="no"
encoding="UTF-8" indent="yes" />
<xsl:template match="Employee">
<ArrayOfstringVariable>
<xsl:apply-templates select="*"/>
</ArrayOfstringVariable>
</xsl:template>
<xsl:template match="*">
<stringVariable>
<name>
<xsl:value-of select="local-name()"/>
</name>
<value>
<xsl:value-of select="."/>
</value>
</stringVariable>
</xsl:template>
</xsl:stylesheet>
有人能帮我写xsl来产生上面的输出吗
提前感谢XSLT将是直截了当的,因为您的大多数元素都是硬编码的:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:ns="http://schemas.abc.org/2004/07/">
<xsl:output method="xml" omit-xml-declaration="no" encoding="UTF-8" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="Employee">
<ns:ArrayOfstringVariable>
<ns:stringVariable>
<ns:name>ServerName</ns:name>
<ns:value>tmn.eu.com</ns:value>
</ns:stringVariable>
<ns:stringVariable>
<ns:name>EmpFirstName</ns:name>
<ns:value>
<xsl:value-of select="FirstName"/>
</ns:value>
</ns:stringVariable>
<ns:stringVariable>
<ns:name>EmpLastName</ns:name>
<ns:value>
<xsl:value-of select="LastName"/>
</ns:value>
</ns:stringVariable>
<ns:stringVariable>
<ns:name>SpouseFirstName</ns:name>
<ns:value>
<xsl:value-of select="Spouse/FirstName"/>
</ns:value>
</ns:stringVariable>
<ns:stringVariable>
<ns:name>SpouseLastName</ns:name>
<ns:value>
<xsl:value-of select="Spouse/LastName"/>
</ns:value>
</ns:stringVariable>
</ns:ArrayOfstringVariable>
</xsl:template>
</xsl:stylesheet>
服务器名
tmn.eu.com
名
雇主名称
第一个名字
壶嘴姓氏
你必须先尝试一下。。您将得到纠正错误的帮助。您好,Lingamurthy,我试过了,但它复制了源XML中的每个元素。要将代码添加为注释,可读性不强。你可以用同样的思路编辑你的问题。。请不要在同一个问题上贴两次:你能通过勾选正确的答案来接受吗?