Xdocument 解析文件并读取值
Xdocument parse file and read values
我有下面的示例 XML ,我需要检索以下两个字段的值 txJu 和 ddate.I 也有代码,但它给出了空预期
<Doc id="580171" ddate="2019-06-21" >
<ref dtRef="2019-08-21">
<dr>
<cr>
<pj>
<pr>
<dDup txJu="0.00" txFi="0.00" txcOp="0.00" />
<comp txJu="12.96" txFi="2.45" txOp="0.00" />
</pr>
</pj>
</cr>
</dr>
</ref>
</Doc>
var xdoc = XDocument.Load(file);
string txJu = xdoc.Root.Element("comp").Attribute("txJu").Value;
string ddate = xdoc.Root.Element("Doc").Attribute("ddate").Value;
您的代码有几个问题。您的 Root
元素不包含 comp
节点,Doc
元素是根本身,string ddate = string value = ...
是无效的 C# 声明。
您可以根据以下内容修改您的代码
var compElement = xdoc.Root?.DescendantsAndSelf("comp").FirstOrDefault();
string txJu = compElement?.Attribute("txJu")?.Value;
string ddate = xdoc.Root?.Attribute("ddate")?.Value;
string value = ddate;
使用DescendantsAndSelf
method to get a collection of filtered comp
elements and use first of them. Access ddate
attribute directly in Root
element. Use null-conditional operator
?
来避免可能的空引用异常
我有下面的示例 XML ,我需要检索以下两个字段的值 txJu 和 ddate.I 也有代码,但它给出了空预期
<Doc id="580171" ddate="2019-06-21" >
<ref dtRef="2019-08-21">
<dr>
<cr>
<pj>
<pr>
<dDup txJu="0.00" txFi="0.00" txcOp="0.00" />
<comp txJu="12.96" txFi="2.45" txOp="0.00" />
</pr>
</pj>
</cr>
</dr>
</ref>
</Doc>
var xdoc = XDocument.Load(file);
string txJu = xdoc.Root.Element("comp").Attribute("txJu").Value;
string ddate = xdoc.Root.Element("Doc").Attribute("ddate").Value;
您的代码有几个问题。您的 Root
元素不包含 comp
节点,Doc
元素是根本身,string ddate = string value = ...
是无效的 C# 声明。
您可以根据以下内容修改您的代码
var compElement = xdoc.Root?.DescendantsAndSelf("comp").FirstOrDefault();
string txJu = compElement?.Attribute("txJu")?.Value;
string ddate = xdoc.Root?.Attribute("ddate")?.Value;
string value = ddate;
使用DescendantsAndSelf
method to get a collection of filtered comp
elements and use first of them. Access ddate
attribute directly in Root
element. Use null-conditional operator
?
来避免可能的空引用异常