嗨,我有一个像
这样的XML数据<data>
<Id>T2351</Id>
<Name>Sam</Id>
</data>
我正在使用XSL从每个ID和Name标签中提取数据并将其放在csv文件中。我的XSL代码看起来像这样,
<xsl:template match="/"> Id,Name
<xsl:for-each select="//data">
<xsl:value-of select="concat(Id,',',Name,'
')"/>
</xsl:for-each>
</xsl:template>
但问题有时在数据中名称有多个值,如&#34; Sam,Tien&#34;并且只要有逗号,数据就会被分成csv中的不同列,我必须停止。我是XSL的新手,因此无法弄清楚应该解决这个问题的解决方案。任何帮助表示赞赏。
答案 0 :(得分:0)
CSV中包含逗号的值的常用方法是将值括在引号中。
对于你的情况,看起来像这样:
<xsl:template match="/">Id,Name
<xsl:for-each select="//data">
<xsl:value-of select="concat(Id, ',"', Name, '"
')"/>
</xsl:for-each>
</xsl:template>
答案 1 :(得分:0)
您可以执行以下操作,它可能对您有帮助。
<xsl:template match="text()[contains(., ', ')]">
<xsl:value-of select="concat('"', ., '"')"/>
</xsl:template>
答案 2 :(得分:0)
最后这个工作
create table Employees
(
EmployeeID INT IDENTITY (1,1) PRIMARY KEY NOT NULL,
EmployeeName VARCHAR(255) NOT NULL,
EmployeeUsername VARCHAR(255) NOT NULL,
EmployeeEmail VARCHAR(255) NOT NULL,
GroupID INT FOREIGN KEY REFERENCES TypeOfGroup(GroupID),
Password VARCHAR(255) NOT NULL
);
create table TypeOfGroup
(
GroupID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
TypeGroup VARCHAR(255) NOT NULL,
Permission CHAR(1) NOT NULL
);
只有这样,csv才能跳过任何字段值内的逗号