0

XDocument で XML 文字列を読み込んでいます

XmlReader reader = XmlReader.Create(new StringReader(xmltext));
        reader.Read();
        XDocument xdoc = XDocument.Load(reader);

次に、いくつかのタグのコンテンツを取得し、別の文字列のタグ内に配置します。最初に行ったのと同じ方法でこの文字列を読み込もうとすると、「エンティティ名の解析中にエラーが発生しました。行 1、位置 344」というエラーが表示されます。

以前に解析されたので、正しく解析する必要があると思うので、ここに何かが欠けていると思います。

で最初の XML の内容を読み込んでコピーしています(string)i.Element("field")

私は.net 4を使用しています

4

3 に答える 3

0

次のようなものがあるようです。

<OriginalDocument>
    <Foo>A &amp; B</Foo>
</OriginalDocument>

それA &amp; Bはテキストを表しますA & B。したがって、要素からテキストを取得すると、文字列 "A & B" が得られます。それを使用して、次のような新しい要素を構築するとします。

string foo = "<Foo>" + fooText + "</Foo>";

次に、次のような無効な XML になります。

<Foo>A & B</Foo>

基本的に、XML をテキスト形式で構築するべきではありません。実際に何を達成しようとしているのかは明確ではありませんが、要素をある場所から別の場所にXElement形式で簡単にコピーできます。文字列を作成してから再解析する必要はありません。

于 2012-08-07T10:01:06.610 に答える
0

私が使用する別のXml文字列を構築するために使用したいxmlのコンテンツを取得する(string)i.Element("field")と、これは私のXmlを文字列に変換しています。私の次の Xml 解析はそれを要素として認識しなくなったので、要素を読み取る前に (string) を使用しないことで問題を解決しましたi.Element("field")

于 2012-08-07T09:52:54.380 に答える