gpt4 book ai didi

c# - 如何使用 XmlReader 从 XML 中的特定子元素获取值?

转载 作者:数据小太阳 更新时间:2023-10-29 01:43:57 26 4
gpt4 key购买 nike

这是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com