【问题标题】:Losing spaces when parsing XML with HTML tags to CSV将带有 HTML 标记的 XML 解析为 CSV 时丢失空格
【发布时间】:2014-06-22 20:59:27
【问题描述】:

当我将使用 HTML 标记的 XML 文件解析为 CSV 时遇到问题。

当我想解析时:

"<strong>Nokia</strong> connecting people" 

来自使用&lt; strong &gt;标签的XML描述字段,在CSV中是

"<strong>Nokia</strong>connecting people". 

Nokia 在标签和下一个单词(连接)之间的空格消失了。

XML:

<Descritpion>
    <![CDATA[<p>
          <strong>Nokia</strong> connecting people
    </p>]]>
</Descritpion>

CSV:

<p>
    <strong>Nokia</strong>connecting people
</p>

C#:

else if (reader.Name == "Description")
{
    while (reader.NodeType != XmlNodeType.EndElement)
    {
        reader.Read();

        if (reader.NodeType == XmlNodeType.CDATA)
            desctiption= reader.Value;
    }
}

有什么解决办法吗?

【问题讨论】:

  • 在发这样的问题时,最好给出一个完整的例子,有人可以粘贴到IDE中,这样你会更快地得到帮助。

标签: c# html xml csv


【解决方案1】:

使用以下代码,我得到了正确的输出,所以可能与您将值输出到 CSV 的方式有关。请注意,我必须在几个地方修正 Description 的拼写,所以这可能是您的一些问题的原因:

var XML =
    "<Doc><Description><![CDATA[<p><strong>Nokia</strong> connecting people</p>]]></Description></Doc>";
XmlReader reader = XmlReader.Create(new StringReader(XML));

string description ="";


while (reader.Read())
{
    if (reader.Name == "Description")
    {
        while (reader.NodeType != XmlNodeType.EndElement)
        {
            reader.Read();
            if (reader.NodeType == XmlNodeType.CDATA)
                description = reader.Value;
        }
    }
}


Console.Write(description);

【讨论】:

  • 感谢您的宝贵时间和回答,我在 XML 中有错误的行尾,我的 VS 在我重新启动时修复了它;)问题已修复!
猜你喜欢
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
相关资源
最近更新 更多