我发布了一个关于这个主题的问题,但没有运气,所以这里有:
我有一个asmx Web服务,使用该Web服务我使用给定的XSD架构解析给定的XML文档。我以一种方式解析XML文档,首先我将XML转换为字符串,然后将其放入DataSet中。我正在解析数据集,并将数据传递给数据库。
我有一点问题,我有这个复杂的节点:
<QuantityInIssueUnit uom="KO">288.000</QuantityInIssueUnit>
我必须提取“KO”和“288.000”值,使用xsd我写了这段代码:
if (!dr_art_line.Table.Columns.Contains("QuantityInIssueUnit") || dr_art_line["QuantityInIssueUnit"].ToString().Length <= 0)
{
QuantityInIssueUnit.Value = 0;
QuantityInIssueUnit.uom = "";
}
else
{
QuantityInIssueUnit.Value = Convert.ToDecimal(dr_art_line["QuantityInIssueUnit"]);
QuantityInIssueUnit.Value = QuantityInIssueUnit.Value.ToString().Length > 15 ? Convert.ToDecimal(QuantityInIssueUnit.Value.ToString().Substring(0, 14)) : QuantityInIssueUnit.Value;
QuantityInIssueUnit.uom = Convert.ToString(dr_art_line["QuantityInIssueUnit uom"]);
}
但是,它没有用,我假设没有节点“QuantityInIssueUnit”,它总是0 ......
有没有办法写这个但是使用DataRow?
答案 0 :(得分:0)
到目前为止,我写了这段代码并且它正在运行:
using (XmlReader reader = XmlReader.Create(new StringReader(str)))
{
//UOM
reader.ReadToFollowing("QuantityInIssueUnit");
reader.MoveToFirstAttribute();
string value = reader.Value;
QuantityInIssueUnit_uom = value;
}
我得到QuantityInIssueUnit_uom = KO,这就是我想要的,现在我只需要写一个pice来获得288.000,任何建议
答案 1 :(得分:0)
这也是值288的代码
using (XmlReader reader = XmlReader.Create(new StringReader(str)))
{
reader.ReadToFollowing("QuantityInIssueUnit");
if (reader.Read())
{
// I want to get all the TEXT contents from the this node
QuantityInIssueUnit_value = reader.Value;
}
}
它有点不同但它有效......