【发布时间】:2013-05-04 00:14:48
【问题描述】:
所以我有一个 XML 文档,我试图在 C# 中使用 XmlTextReader 导入,并且我的代码运行良好,除了一个部分,即标记行与实际文本/内容不在同一行,例如与产品名称:
<product>
<sku>27939</sku>
<product_name>
Sof-Therm Warm-Up Jacket
</product_name>
<supplier_number>ALNN1064</supplier_number>
</product>
我尝试对 XML 文档进行排序的代码如下:
while (reader.Read())
{
switch (reader.Name)
{
case "sku":
newEle = new XMLElement();
newEle.SKU = reader.ReadString();
break;
case "product_name":
newEle.ProductName = reader.ReadString();
break;
case "supplier_number":
newEle.SupplierNumber = reader.ReadString();
products.Add(newEle);
break;
}
}
我已经尝试了几乎所有在 XmlTextReader 文档中找到的内容
reader.MoveToElement();
reader.MoveToContent();
reader.MoveToNextAttribute();
还有其他一些不太有意义的,但似乎没有一个能够始终如一地处理这个问题。显然我可以修复这个案例,但它会打破常规案例。所以我的问题是,在我找到“product_name”标签后,有没有办法让它转到包含文本的下一行并提取它?
我应该提到,之后我将它输出到 HTML 表中,并且元素出现空白,所以我相当肯定它没有正确读取它。
提前致谢!
【问题讨论】:
-
您确定嵌入的新行没有得到正确的结果吗?如果您在 UI 中的某处显示它,它可能会显示为空。
-
对不起,你的意思是即使它在 ui 中显示为空,它仍然可能是正确的值?稍后我把它填到一张桌子上,它是空白的,可能应该提到过
-
有可能。如果它以换行符('\n')开头,在某些 UI 中可能会在表格中显示为空。
标签: c# xml xmltextreader