2017-09-27 28 views
-1

ストリームとしてXPSのfpage要素のXML構造を読みたいと思います。C#XPSストリームのfpageからXMLを読み込みます。

ので、さらに私は何をしたいかを説明するために:あなたは、例えば、XMLを読み込むことができ

あなたがzipアーカイブに名前を変更することができ.xpsを保存した場合
xps \ Documents \ 1 \ Pages \ 1.fpage

ここで私のC#プログラムでこのxml構造体を読みたいと思います。
ディスクに保存、名前を変更、移動、抽出、読み取り、削除するのはいい方法ではないので、私はこのxpsファイルを自分のプログラムのストリームとして利用できます。
それでは、どうやってストリームからこのXPS構造にアクセスしてxmlを読むことができますか?

答えて

0

自分自身で答えを見つけたら(あなたが知っていると難しいことはありません^^)。

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 
    } 
} 
関連する問題