sql - 使用 XML FOR 向 T-SQL 查询添加命名空间

标签 sql xml namespaces sql-server-2012

我必须为自定义字段包含 XML 命名空间。

示例查询

SELECT field1 as '@attr1'
FROM table1
FOR XML PATH ('node')

到目前为止我收到的是:
<node attr1="value" />

我想要实现的是这个,简单明了,没有 xmlns decalrations。
<myname:node attr1="value">

如何做到这一点?

SQL Server 2012?

提前致谢!

最佳答案

您需要在查询中声明 XML 命名空间,并引用它 - 如下所示:

;WITH XMLNAMESPACES('myname' AS ns)
SELECT field as '@attr1'
FROM table1
FOR XML PATH ('ns:node')

然后你会得到这样的输出:
<ns:node xmlns:ns="myname" attr1="value" />

关于sql - 使用 XML FOR 向 T-SQL 查询添加命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449412/

相关文章:

SQL:选择varchar的平均值

c# - 查询 XML [SAML 2.0 响应]

java - 为什么我在从第三方 url 读取 xml 时遇到此异常

python - 使用属性将字典转换为 XML

php - Yii 类未找到,命名空间使用

Java 解析带有未声明命名空间的 xml

php - 试图了解什么是命名空间 : Fatal error: Uncaught Error: Class 'feline\Cat' not found in C:\Users\bird\

c# - 如何在数据访问类中为参数化查询创建方法?

sql - 如何在 C# 中的 codefirst 技术中使用带有 EF 的 Linq 避免 SQL 注入(inject)

sql - 使用附加条件计算来自分组查询的记录