这是 XML 字符串。
<?xml version="1.0" encoding="utf-16"?>
<questionresponses>
<question id="dd7e3bce-57ee-497a-afe8-e3d8d25e2671">
<text>Question 1?</text>
<response>abcdefg</response>
<correctresponse>123</correctresponse>
</question>
<question id="efc43b1d-048f-4ba9-9cc0-1cc09a7eeaf2">
<text>Question 2?</text>
<response>12345678</response>
<correctresponse>123</correctresponse>
</question>
</questionresponses>
那么如何通过给定的问题 ID 获取 <response>
元素的值呢?比如说,如果我给 id value = "dd7e3bce-57ee-497a-afe8-e3d8d25e2671",我希望返回字符串值 abcdefg
作为结果。
var xmlstr = "content from above xml example";
using (var reader = XmlReader.Create(new StringReader(xmlstr)))
{
while(reader.Read())
{
if(reader.IsStartElement())
{
var attr = reader["id"];
if(attr != null && attr == "dd7e3bce-57ee-497a-afe8-e3d8d25e2671")
{
if(reader.ReadToDescendant("response"))
{
result = reader.Value; // <= getting empty string? So what's wrong?
break;
}
}
}
}
}
最佳答案
你可能需要这样做,我认为问题是读者没有转向文本,因此你变得空虚
if(reader.ReadToDescendant("response"))
{
reader.Read();//this moves reader to next node which is text
result = reader.Value; //this might give value than
break;
}
上面一个对我有用,你可以在你这边试试
关于c# - 如何使用 XmlReader 从 XML 中的特定子元素获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18891207/