0

我有一个 xml 文档,其中包含一个 sql 查询。假设它看起来像这样:

<commandText> Select ProductID, ProductName
              From   Product</commandText>

当它通过 octopack 运行并部署(通过 octopus deploy)到我的服务器上时,它看起来像这样:

<commandText> Select ProductID, ProductName&#xD;&#xA;     From   Product</commandText>

(换行符被转换为&#xD;&#xA;

在进行此更改以将其转换回来后,我是否可以运行 xml 转换?(或至少删除&#xD;&#xA;

注意:我的实际查询是一个复杂的合并语句,所以我宁愿不要将它放在多个地方。

4

2 回答 2

1

您正在寻找的是此处描述的 XmlDocument 的 WHITESPACE PRESERVE 函数https://msdn.microsoft.com/en-us/library/system.xml.xmldocument.preservewhitespace%28v=vs.110%29.aspx

第二种(也是最好的)方法是让 XML 自动解码。您正在使用错误的方法来读出 select 语句;)

于 2015-05-18T22:05:25.177 回答
1

不确定这是否有帮助,但如果我运行此代码(在 Linqpad 中)

string x = "<commandText> Select ProductID, ProductName&#xD;&#xA;     From   Product</commandText>";
var wrapper = new StringReader(x);
XmlReader xr = XmlReader.Create(wrapper);
xr.MoveToContent();
xr.ReadOuterXml().Dump();

我得到这个文字输出:

<commandText> Select ProductID, ProductName
     From   Product</commandText>

因此,如果您在服务器上使用 XmlReader,则不需要通过转换来操作实体。XmlReader 应该很好地解释它们。虽然不确定这是否是问题...

于 2015-05-31T23:36:04.820 回答