【发布时间】:2015-04-20 09:43:32
【问题描述】:
我使用的是 sql server 2012。
这是我的查询:
CREATE TABLE #XmlTestTable
(
ID INT PRIMARY KEY IDENTITY(1,1),
FirstName VARCHAR(20),
LastName VARCHAR(20)
)
INSERT INTO #XmlTestTable (FirstName,LastName) VALUES
('John','Doe'),
('Jane','Doe'),
('Brian','Smith'),
('Your','Mom')
select FirstName as "Name/@FN",LastName as "Name/@LN" from #XmlTestTable for xml path('X'),root('Y')
结果如下:
<Y>
<X>
<Name FN="John" LN="Doe" />
</X>
<X>
<Name FN="Jane" LN="Doe" />
</X>
<X>
<Name FN="Brian" LN="Smith" />
</X>
<X>
<Name FN="Your" LN="Mom" />
</X>
</Y>
如何使用XML AUTO获取这种格式
select FirstName as "Name/@FN",LastName as "Name/@LN" from #XmlTestTable for xml auto
生成这个:
<_x0023_XmlTestTable Name_x002F__x0040_FN="John" Name_x002F__x0040_LN="Doe" />
<_x0023_XmlTestTable Name_x002F__x0040_FN="Jane" Name_x002F__x0040_LN="Doe" />
<_x0023_XmlTestTable Name_x002F__x0040_FN="Brian" Name_x002F__x0040_LN="Smith" />
<_x0023_XmlTestTable Name_x002F__x0040_FN="Your" Name_x002F__x0040_LN="Mom" />
谁能告诉我为什么我会在上面的格式中得到像_x002F__x0040_FN 这样的刺痛?
【问题讨论】:
-
查找字符代码 x002F 和 x0040。你得到了什么?你的结论是什么?
-
_x0023_、_x002F_和_x0040_似乎分别是#、/和@的转义序列,它们各自的 ASCII 码以十六进制表示.
标签: sql sql-server xml xpath sqlxml