在xml文件的序列化中插入标签

问题描述 投票:0回答:1

我正在序列化一个 XML 文件,其中包含使用 XML 的特殊粘贴自动创建的类。我做的一切都没有问题,超过 3,000 行(Xml 文件超过 600 行),但我有一个无法序列化的标签。 在原始的 xml 文件中我有这个:

<sdtc:statusCode code="active"/>

这是 Visual Studio 生成的类:

public string code
{
    get { return this.codeField; }
    set { this.codeField = value; }
}

我是这样连载的:

statusCode oStatusCode = new statusCode();
oStatusCode.code = "active";

这是序列化结果:

<statusCode code="active" />

如您所见,缺少

sdtc:
前缀,我不知道如何插入它。

我尝试过:

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:hl7-org:sdtc")]

但是没有效果。我搜索了几个小时但找不到解决方案。不幸的是,这是我第一次体验序列化。

有什么想法或建议吗?

编辑: 由于序列化类超过 12,000 行长,我认为我无法插入它们,我会尝试插入一些有用的东西,希望我没有错。 XML 文件的第一行:

<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lab="urn:oid:1.3.6.1.4.1.19376.1.3.2" xmlns:sdtc="urn:hl7-org:sdtc">

序列化器代码的第一行:

[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "urn:hl7-org:v3")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "urn:hl7-org:v3", IsNullable = false)]
c# xml xml-serialization
1个回答
0
投票

这是我第一次使用序列化器,但为了解决问题,我使用了这个解决方案,当然不正确且不优雅,但它有效。

        string cRead = File.ReadAllText("mycda.xml");
        System.Xml.Linq.XDocument xdoc = System.Xml.Linq.XDocument.Parse(cRead);           
        string cNew = xdoc.ToString();
        cNew = cNew.Replace("<statusCode code=\"activemod\" />", "<sdtc:statusCode code=\"active\" />");

(我使用 activemod 值来将其与其他所有值区分开来)

© www.soinside.com 2019 - 2024. All rights reserved.