Xml Document Transform查找和替换  值

时间:2015-05-18 21:51:10

标签: .net xml newline xdt-transform xdt

我有一个xml文档,里面有一个sql查询。让我们说它看起来像这样:

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

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

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

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

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

注意:我的实际查询是一个复杂的合并声明,所以我宁愿不要在多个地方使用它。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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应该很好地解释它们。不确定这是不是问题......