0

同様のスレッドの多くは、まさに私が望むものではないか、Linq を扱っています。.NET 2.0を使用しています

テンプレートに似た XML ファイルがあります。XML を別のファイルに書き込む必要がありますが、初期書式設定のためにテンプレート XML ファイルを参照する必要があります。

このような:

私のテンプレートファイル:

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/2006/04/ttaf1" xmlns:tts="http://www.w3.org/2006/04/ttaf1#styling" xml:lang="en">
  <head>
    <styling>
      <style id="s1" tts:fontFamily="SchoolHouse Cursive B" tts:fontSize="16" tts:fontWeight="normal" tts:fontStyle="normal" tts:textDecoration="none" tts:color="white" tts:backgroundColor="blue" tts:textAlign="center" />
      <style id="s2" tts:fontFamily="SchoolHouse Cursive B" tts:fontSize="16" tts:fontWeight="normal" tts:fontStyle="normal" tts:textDecoration="none" tts:color="yellow" tts:backgroundColor="black" tts:textAlign="center" />
   </styling>
  </head>
<body id="s1" style="s1">
  <div xml:lang="uk">
      <p begin="00:00:00" end="00:00:04">Hi! </p>
      <p begin etc............</p>
  </div>
 </body>
</tt>

<p begin="00:00:00" end="00:00:04">Hi! </p>最初の部分(その行は含まない)まで読む必要があります。別の XML ファイルに書き込む関数にそれを渡すことができるように、任意の .NET 型に入る必要があります。

注: テンプレート XML ファイルをノードごと、または要素ごとに読みたくありません。XML の最初の部分は何でもよいので、一般的な解決策が必要です。

私は試した:

XmlTextReader reader = new XmlTextReader(templateFile);
var list = new Something(); //what type would be ideal
while (reader.Read())
{
    if (reader.LocalName == "p")
       break;

    if (reader.LocalName == "")
       continue;

    list.Add(??); 
    //how do I read the rest here?
}

どうすれば同じように書けるようになりますか?

4

1 に答える 1

1

XML が有効でない方法で XML ファイルを使用したいようです。unclosed<body>および<div>タグを操作できる XML リーダーやツールはありません。

テキストファイルのように扱うことを検討しますが、ソースの改行フォーマットに依存しています。

欠点は、何かを書くときにテキストとして使い続ける必要があることですが、それを回避する方法がわかりません。

于 2012-07-01T10:24:34.253 に答える