1

二重引用符を含む値を持つ文字列プロパティを持つオブジェクトがあります。このオブジェクトをシリアライズしてから、その XML を使用する必要があります。このxmlを逆シリアル化することはありません。

XML ファイルで適切なコンテンツを取得できません。コードサンプルで説明しましょう:

[Serializable]
public class Test {
    [XmlElement]
    public string obj { get; set; }
}
class Program {
    static void Main(string[] args) {

        var st ="Priority == \"1\"";
        Test test = new Test();          
        test.obj = st;
        //Serialize this object
        XmlSerializer xsSubmit = new XmlSerializer(typeof(Test));
        StringWriter sww = new StringWriter();
        XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings {
            OmitXmlDeclaration = true
        });
        var ns = new XmlSerializerNamespaces();//just to make things simpler here
        ns.Add(string.Empty, string.Empty);
        xsSubmit.Serialize(writer, test, ns);
        //My XML
        var xml = sww.ToString();
    }
}

私のxmlは次のようにする必要があります。

<Test><obj>Priority==&quot;1&quot;</obj></Test>

私は今得ます:

<Test><obj>Priority==\"1\"</obj></Test>

var html = HttpUtility.HtmlEncode(st); この場合、変数htmlは正しい形式ですが、シリアル化すると次のようになります。

<Test><obj>Priority==&amp;quot;1&amp;quot;</obj></Test>

助けが必要です。

4

1 に答える 1

0

コードに問題はありませんでした。

私は実際に取得<Test><obj>Priority=="1"</obj></Test>し、これは問題ありません。私が犯していた間違いは、デバッガーで値を読み取っていたことです。どこかに書いてみると、内容は正しい形式でした。

二重引用符は XML ドキュメントでそのまま受け入れられるため"、変換されませんでした。&quot;この場合、私はそれで働くことができます!

于 2013-10-31T05:00:31.570 に答える