我试图创建xml文件:
DECLARE @XML as XML = ( Select
ProductID as "@Item",
Store as "@Store",
Price as "@Price",
Stock as "@Stock"
From ItemsDB
FOR XML PATH ('product'), ROOT ('products')
);
DECLARE @xmlChar AS VARCHAR(max) = CAST(@xml AS VARCHAR(max))
SET @xmlChar = REPLACE(REPLACE(@xmlChar, '>', '^>'), '<', '^<')
DECLARE @command VARCHAR(8000) = 'powershell -Command "Set-Content-Encoding UTF8 D:\XML\test.xml \"' + @xmlChar + '\""'
EXEC xp_cmdshell @command
}
但是xml文件丢失了所有双引号,结果如下所示:
<products>
<product Item=100798 Store=121 Price=118.56 Stock=0.0000/>
<product Item=101628 Store=401 Price=593.14 Stock=0.0000/>
</products>
在哪里获取像这样的xml:
<products>
<product Item="100798" Store="121" Price="118.56" Stock="0.0000"/>
<product Item="101628" Store="401" Price="593.14" Stock="0.0000"/>
</products>
答案 0 :(得分:1)
我用我的一些数据尝试了你的代码......这是“命令”回来了:
Mirror
let mirror = Mirror(reflecting: ActionModel.self)
print(mirror.displayStyle) // nil
而不是powershell -Command "Set-Content-Encoding UTF8 D:\XML\test.xml \"^<products^>^<product Item="84519" Store="xyz"/^>^<product Item="260" Store="abc"/^>^</products^>\""
这适用于我的系统:
<
结果
>
我没有找到用双引号写相同的方法,但这通常 - 不重要。 XML可以处理两者。如果您使用应用程序(此处为Visual Studio,Win10 / Edge和Chrome)打开此文件,您会看到这一点:
每个应用程序都接受此作为有效的XML,并且不仅仅“按原样”显示内容,而是进行某种解释。这应该证明这是有效的......