有人可以帮我吗?
我需要使用XSLT将一个XML文档转换为另一个XML文档。
所以我有下一个简单的代码:
var xmlDocument = new XmlDocument();
xmlDocument.Load("input.xml");
var xslTransform = new XslCompiledTransform();
var styleSheetFullPath = "DefaultStyleSheet.xsl";
xslTransform.Load(styleSheetFullPath);
输入xml文档如下例所示:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Object>
<GUID>201110180954525010129</GUID>
<Meta name="FILENAME" format="string" frate="" />
</Object>
</Root>
我需要将其转换为下一个XML:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Object>
<GUID>201110180954525010129</GUID>
<FILENAME/>
</Object>
</Root>
当我尝试使用下一种方法时效果很好。但是我需要首先将文档写入文件,并且在转换之后我需要reed它。
var fileName = "result.xml";
using (var myWriter = new XmlTextWriter(fileName, null))
{
xslTransform.Transform(xmlDocument.CreateNavigator(), null, myWriter);
}
var doc = new XmlDocument();
doc.Load(fileName);
但是当我尝试使用下一种方法动态创建XML文档时
var xmlDocOutput = new XmlDocument();
var xmlDocOutputDeclaration = xmlDocOutput.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDocOutput.AppendChild(xmlDocOutputDeclaration);
using (var xmlWriter = xmlDocOutput.CreateNavigator().AppendChild())
{
xslTransform.Transform(xmlDocument.CreateNavigator(), null, xmlWriter);
}
我得到下一个输出
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Object>
<GUID>201110180954525010129</GUID>
<FILENAME> </FILENAME>
</Object>
</Root>
那么我该怎么做才能在元素内容中保留空白区域。
提前致谢