1
A
回答
2
根據StringWriter
發送變換到XmlTextWriter
。然後通過從StringWriter
撤回XML字符串來實例XPathDocument
。
var sw = new StringWriter();
var xtw = new XmlTextWriter(sw);
myTransform.Transform(myXml, xtw);
var xpd = new XPathDocument(sw.ToString());
它不是最高效的內存機制,但對大多數需求來說足夠了。類似的方法將使用MemoryStream
而不是StringWriter
,但通過比較它有點混亂。
3
瓊斯先生的回答對我非常有幫助,但是我發現最後一行不起作用。最後我做這個:
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(filePath);
StringWriter stringWriter = new StringWriter();
XmlWriter xmlWriter = XmlTextWriter.Create(stringWriter);
xsl.Transform(xPathDoc, xmlWriter);
String newXml = stringWriter.ToString();
StringReader stringReader = new StringReader(newXml);
xPathDoc = new XPathDocument(stringReader);
(在這裏,xPathDoc是,已經從一個XmlReader初始化的XPathDocument中。)
2
稍微好一點的大衛·安德森的回答的形式是以下:它不遭受潛在的資源泄漏;否則它是一樣的。
private static XPathDocument TransformToXPathDocument(string styleSheetPath,
IXPathNavigable xPathDoc)
{
var xsl = new XslCompiledTransform();
xsl.Load(styleSheetPath);
using(var stringWriter = new StringWriter())
{
using(XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
{
xsl.Transform(xPathDoc, xmlWriter);
}
using(var reader = new StringReader(stringWriter.ToString()))
{
return new XPathDocument(reader);
}
}
}
相關問題
- 1. 設置XslCompiledTransform輸出設置
- 2. C#XslCompiledTransform在需要編輯時使用XmlDocument或XPathDocument?
- 3. 爲什麼XslCompiledTransform將META標籤添加到HTML輸出中?
- 4. XslCompiledTransform
- 5. XslCompiledTransform失敗,堆棧溢出
- 6. 與XPathDocument中
- 7. xslcompiledtransform輸出函數和名稱空間的名稱
- 8. 如何將XslCompiledTransform的輸出獲取到XmlReader中?
- 9. 爲什麼這個XML是由這個XSLT輸出的?我正在使用XslCompiledTransform
- 10. XslCompiledTransform換行符,如何輸入它們?
- 11. 創建XPathDocument時爲什麼會出現Web異常?
- 12. 從XPathDocument獲取XML
- 13. 從XmlElement創建XPathDocument
- 14. XPathDocument與XPathNavigator VS Xmlreader?
- 15. 將XPathDocument轉換爲字符串
- 16. XPathDocument中的行爲與DOCTYPE聲明
- 17. XslTransform與XslCompiledTransform
- 18. XslTransform到XslCompiledTransform
- 19. MSXML:與XslCompiledTransform
- 20. 獲得使用XslCompiledTransform
- 21. System.Web.UI.WebControls.Xml使用XslCompiledTransform嗎?
- 22. EntityName解析錯誤 - XPathDocument
- 23. c#使用XPathDocument解析html
- 24. 如何通過使用XslCompiledTransform在輸出XML中獲得自我關閉標記?
- 25. 未使用XslCompiledTransform調用XmlResolver
- 26. 梅辛與編碼和XslCompiledTransform
- 27. XslCompiledTransform使用UTF-16編碼
- 28. 在c#中實現exslt.dynamic.evaluate(XslCompiledTransform)
- 29. XslCompiledTransform在xsl上失敗:import
- 30. XElement和XslCompiledTransform存在問題