当前位置: 首页 > 知识库问答 >
问题:

Xml中的Xml元素

巢皓君
2023-03-14

我正在尝试创建包含另一个XML的XML文档,比如child。

首先,我有一个对象Foo,它有一些属性。我用这个函数序列化它:

private static string SerializeToString(object dataToSerialize)
{
    var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
    var serializer = new XmlSerializer(dataToSerialize.GetType());
    var settings = new XmlWriterSettings
    {
        Indent = true,
        OmitXmlDeclaration = true
    };
    using (var stream = new StringWriter())
    using (var writer = XmlWriter.Create(stream, settings))
    {
        serializer.Serialize(writer, dataToSerialize, emptyNamepsaces);
        return stream.ToString();
    }
}

在另一个我无法访问Foo类的类中,我需要用这个Foo字符串在xml文档中保存一些数据。所以我有另一个像这样的物体:

public class Bar
{
    public int SomeInt { get; set; }

    public string FooString { get; set; }
}

当我序列化这个Bar对象并像xml文档一样保存它时。对于FooString元素,我得到了类似的结果。

<FooString>
        <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;Foo&gt;
  &lt;Guid&gt;2de0b223-308a-4c90-8dc7-09b48c1f42e6&lt;/Guid&gt;
  &lt;Id&gt;119&lt;/Id&gt;
  &lt;Name&gt;Some name&lt;/Name&gt;
  &lt;Description&gt;SomeDesc..&lt;/Description&gt;
&lt;/Foo&gt;</string>
  </FooString>

我明白这个超文本标记语言字符实体(


共有1个答案

徐旻
2023-03-14

在xml中使用xml的最好方法是在类中使用Foo属性,而不是FooString。如果将xml用作字符串,则无法确定它是否仍然是有效的xml,它只是一个字符串。如果您不想或无法将xml序列化为数据,我建议将Foo序列化为CData,类似于:

public class Bar
{
    public int SomeInt { get; set; }

    [XmlIgnore]
    public string FooString { get; set; }
    [XmlElement("FooString")]
    public XmlCDataSection FooStringCData
    {
        get { return new XmlDocument().CreateCDataSection(FooString); }
        set { FooString = (value != null) ? value.Data : null; }
    }
}

在CData部分中给出xml字符串的输出:

<Bar>
  <SomeInt>1</SomeInt>
  <FooString><![CDATA[<Z>
  <A>10</A>
  <B>12</B>
</Z>]]></FooString>
</Bar>
 类似资料:
  • 主要内容:什么是 XML 元素?,XML 命名规则,最佳命名习惯,XML 元素是可扩展的XML 文档包含 XML 元素。 什么是 XML 元素? XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。 一个元素可以包含: 其他元素 文本 属性 或混合以上所有... <bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2

  • 问题内容: 这是一项学术任务,我们将获得一个非常大的XML文件,其中包含数百个此类条目。对于每个项目,我们都应列出经理的ID,将项目添加到列表中的最后一个人员的人员ID以及当前的项目数。我已阅读并重新阅读了Oracle DOM API和各种Node API。我们正在使用JAVA,我一生都无法弄清楚如何搜索每个节点的各个“字段” 。以下是我们提供的数据示例。 我尝试做类似的事情: 并弄乱了这段代码一

  • 问题内容: 嗨,什么是计算XML文件中元素数量的最佳方法?就我而言,我想计算标签“ OfferNameList”中名称为“ OfferName”的XML标签的数量。 下面的XML包含在php变量$ offers中 谢谢您的帮助 问题答案: 与您可以使用 仅 计算 所有OfferName元素 。是的属性。 要计算 OfferNameList中的所有OfferName元素 ,可以使用 请注意,由于XP

  • 本文向大家介绍php操作xml入门之xml基本介绍及xml标签元素,包括了php操作xml入门之xml基本介绍及xml标签元素的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php操作xml入门之xml基本介绍及xml标签元素。分享给大家供大家参考。具体分析如下: 以xml实例来讲解: 一、xml声明: <?xml version="1.0" encoding="utf-8" standa

  • 我正在尝试从xml文件中删除元素和子元素。特别是附加名称Testlog。 首先这是我的xml文件的外观。 以下是我的java代码: 我想删除此appender的所有内容,但引发了一个异常。可能是我错过了一些简单的东西。 有什么想法吗?

  • 问题内容: 我已经从Excel数据库中生成了一个xml文件,它自动包含一个名为“ ” 的元素。为了使新文件符合我的需求,我想使用java删除此元素。这是xml内容: 我编写了一个代码来读取(使用缓冲的读取器)并将内容写入新文件中,并在以下情况下使用该条件: 但这不起作用 问题答案: 我个人建议使用适当的XML解析器(如Java DOM)来检查和删除您的节点,而不是将XML作为原始对象处理(糟糕)。