【问题标题】:Extract values from XML node从 XML 节点中提取值
【发布时间】:2012-06-12 11:23:48
【问题描述】:

我有一个 xml 文件,我必须读取它并将节点中的值提取到一些变量中,我遇到了一个我不知道如何提取数据的节点,这就是节点:

<QuantityInIssueUnit uom="KO">288.000</QuantityInIssueUnit> 

所以我必须提取 KO 和 288.00 并将其传递给变量,我尝试了这个:

if (!dr_art_line.Table.Columns.Contains("QuantityInIssueUnit") || 

    dr_art_line["QuantityInIssueUnit"].ToString().Length <= 0)
                                {
                                    QuantityInIssueUnit = 0;
                                }
                                else
                                {
                                QuantityInIssueUnit = Convert.ToDecimal(dr_art_line["QuantityInIssueUnit"]);
                                 {

还有这个:

if (!dr_art_line.Table.Columns.Contains("QuantityInIssueUnit uom") || dr_art_line["QuantityInIssueUnit uom"].ToString().Length <= 0)
                            {
                                QuantityInIssueUnit_uom = 0;
                            }
                            else
                            {
                                QuantityInIssueUnit_uom = Convert.ToDecimal(dr_art_line["QuantityInIssueUnit uom"]);
                            }

但是每次 QuantityInIssueUnit 为 0 时,我都知道我在阅读时做错了, 读取这种节点的正确方法是什么?

谢谢!

【问题讨论】:

  • 对不起,我可能对一种我不熟悉的与 XML 交互的方式一无所知,但是您为什么在这里将 XML 作为一个表进行交互呢?为什么不使用XmlDocumentXmlReader

标签: c# xml


【解决方案1】:

DOCUMENT.xml

<ROOT>
    < . . . >
    <QuantityInIssueUnit uom="KO">288.000</QuantityInIssueUnit>
    < . . . >
</ROOT>

如果这是你的设置,我会使用类似的东西:

public static float ReadFromXml(string f, string n)
{
    string quantityInIssueUnit;
    XmlReader reader = XmlReader.Create(f);
    reader.ReadToFollowing(n);
    quantityInIssueUnit = reader.ReadInnerXml( );
    reader.Close( );
    return float.Parse(quantityInIssueUnit);
}

所以你可以打电话:

ReadFromXml(@"C:\\...\DOCUMENT.xml", "QuantityInIssueUnit");
// Returns 288 as a float

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2020-05-05
    • 2015-05-23
    相关资源
    最近更新 更多