C#从XPS流的fpage读取XML
问题描述:
我想将XPS中的fpage元素的XML结构读取为Stream。C#从XPS流的fpage读取XML
因此进一步解释什么,我想做的事:
如果保存.XPS您可以将其重命名为一个zip压缩包,那么你可以例如读取xml
xps \ Documents \ 1 \ Pages \ 1.fpage
现在我想在我的C#程序中读取这个xml结构。
因为保存到光盘,重命名,导航,提取,读取,删除不是一个好的选择,我已经可以在我的程序中以流的形式提供此xps文件。
所以问题是我如何从流中访问这个XPS结构并读取它的xml?
答
所以,如果自己找到答案(如果你知道如何^^,那不是很难)。
您需要System.IO.Packaging.Package和参考ReachFramework然后创建一个新的XpsDocument并通过XmlReader读取XML结构。
用于阅读第一页的小样本:
XpsDocument xpsFromStream = new XpsDocument(Package.Open(stream)); //ReachFramework
IXpsFixedDocumentSequenceReader fixedDocSeqReader = xpsFromStream.FixedDocumentSequenceReader;
if (fixedDocSeqReader != null)
{
XmlReader pageContentReader = fixedDocSeqReader.FixedDocuments[0].FixedPages[0].XmlReader;
//Sample:
while (pageContentReader.Read())
{
if (pageContentReader.Name == "Path")
//Do stuff
}
}