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

C#使用XmlReader但不使用XmlDocument获取额外的空白值

宰父飞翼
2023-03-14

我有一个我不太明白的情况。当读取以下XML时:

<?xml version="1.0" encoding="utf-8" ?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Countries>
      <Country>
        <CountryCode>CN</CountryCode>
        <CurrentStatus>Active</CurrentStatus>
      </Country>
    </Countries>

    <Countries>
      <Country>
        <CountryCode>AU</CountryCode>
        <CurrentStatus>Cancelled</CurrentStatus>
      </Country>
      <Country>
        <CountryCode>CN</CountryCode>
        <CurrentStatus>Cancelled</CurrentStatus>
      </Country>
      <Country>
        <CountryCode>US</CountryCode>
        <CurrentStatus>Active</CurrentStatus>
      </Country>
    </Countries>

    <Countries xsi:nil="true" />
</Root>
//No whitespace
string xml = File.ReadAllText(fileInfo.FullName);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
string json1 = JsonConvert.SerializeXmlNode(xmlDoc);

//With whitespace
XmlDocument doc = new XmlDocument();
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;

using (XmlReader reader = XmlReader.Create(fileInfo.FullName, settings))
{
    while (reader.Read())
    {
        if (reader.NodeType == XmlNodeType.Element)
        {
            XmlNode node = doc.ReadNode(reader);
            string json2 = JsonConvert.SerializeXmlNode(node);
        }
    }
}

为什么XmlReader生成空白,而XmlDocument不生成空白?鉴于XML值,我认为它们不应该存在。

共有1个答案

申屠锦
2023-03-14

用:

settings.IgnoreWhitespace = true;

多亏了@HenkHolterman和@Finrod。

 类似资料:
  • 我正在尝试在网页上嵌入一个小程序。我已经将代码导出为IntelliJ中的压缩applet。现在,当我尝试运行它时,我得到以下堆栈跟踪: 我相信该错误是由于试图使用类中的方法获取图像而导致的。这是代码: 下面是我在HTML中使用的标记以供参考: 如果您想亲自查看错误,只需访问http://nrubin29.github.io/freefall-applets/ 谢谢!

  • 问题内容: 我有一台扫描仪,并将定界符设置为“”,但是它仍然不会使用next()方法读取空格。我知道nextline()可以工作,但是我需要单独检查输入中的每个字符,包括空格;这是一个复杂的数据分析问题。不过我很困惑。谷歌什么也没发现。 谁能帮我这个?我正在考虑将空格反转为一个特殊字符,然后出于分析该字符的目的,将其反转回一个包含在字符串中的空格……这似乎有些过头了!有没有更优雅的方式做到这一点?

  • 本文向大家介绍C#使用XmlDocument或XDocument创建xml文件,包括了C#使用XmlDocument或XDocument创建xml文件的使用技巧和注意事项,需要的朋友参考一下 使用XmlDocument或XDocument创建xml文件,具体内容如下 需引用:System.Xml; System.Xml.Linq; 1.使用XmlDocument创建xml(入门案例) 使用XmlD

  • http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“version=”2.5“>

  • 我在MongoDB中有一些地理空间数据,我想找到靠近用户位置并符合某些标准的地方列表。 下面是我的文档结构: 现在我正试图通过纬度,经度,找到有票可用的,并且是某种类型的地方。当我只使用带坐标的NearQuery(不添加查询)时,我得到的是结果,但当我添加查询对象时,我得到的是空列表。 提前致谢

  • 问题内容: 我有一个使用AngularJS ng- repeat通过选择创建的列表框。正确创建了列表框,当我选择其中一项并单击我的按钮时,我进入了该功能并获得了所需的信息。 我的html代码如下: 我的问题是,在绘制列表框时,它的顶部有一项是空白的。在Chrome运行过程中检查列表框时,在控制台中获得以下输出: 我想知道如何摆脱ng-repeat插入的第一个选项。我不想在列表框的顶部看到空白。我意