如何从 XML 添加项目到 ListBox 或其他控件? ASP.NET(C#)

发布于 2024-10-26 07:27:18 字数 1063 浏览 0 评论 0 原文

我有具有以下结构的 XML 文件:

<rule ID="16" Attribute="Savvy" Parametr="">
      <body>
        <term Operation="AND">
          <IF_ID>8</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>impossible</IF_Value>
        </term>
        <term Operation="OR">
          <IF_ID>9</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>yes</IF_Value>
        </term>
        <term Operation="AND">
          <IF_ID>8</IF_ID>
          <Ratio>!=</Ratio>
          <IF_Value>impossible</IF_Value>
        </term>
        <term>
          <IF_ID>9</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>no</IF_Value>
        </term>
      </body>
      <value>normal savvy</value>
    </rule>

我需要将其添加到列表框并获取 1 行:

8 = impossible AND 9 = yes OR 8 != impossible AND 9 = no - normal savvy

I have XML file with the following structure:

<rule ID="16" Attribute="Savvy" Parametr="">
      <body>
        <term Operation="AND">
          <IF_ID>8</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>impossible</IF_Value>
        </term>
        <term Operation="OR">
          <IF_ID>9</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>yes</IF_Value>
        </term>
        <term Operation="AND">
          <IF_ID>8</IF_ID>
          <Ratio>!=</Ratio>
          <IF_Value>impossible</IF_Value>
        </term>
        <term>
          <IF_ID>9</IF_ID>
          <Ratio>=</Ratio>
          <IF_Value>no</IF_Value>
        </term>
      </body>
      <value>normal savvy</value>
    </rule>

I need to add it to Listbox and get 1 row:

8 = impossible AND 9 = yes OR 8 != impossible AND 9 = no - normal savvy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你怎么敢 2024-11-02 07:27:18

如果您需要知道如何通过 XDocument 读取属性,那么就像执行 xElement.Attribute("Operation") 一样简单。

现在要真正获得您想要的字符串结构,您需要做的就是循环遍历您的术语并将它们附加到字符串中。

var xDocument = XDocument.Parse(x);
var stringBuilder = new StringBuilder();
foreach (var xElement in xDocument.Descendants("term"))
{
    var operationValue = xElement.Attribute("Operation") == null ? string.Empty : xElement.Attribute("Operation").Value;
    stringBuilder.AppendFormat("{0} {1} {2} {3} ", 
                                    xElement.Element("IF_ID").Value, 
                                    xElement.Element("Ratio").Value,
                                    xElement.Element("IF_Value").Value,
                                    operationValue);
}
stringBuilder.AppendFormat("- {0}", xDocument.Descendants("value").First().Value);

这假设每个元素都有一个值,并且只有一个 。需要进行空值检查以确保每个元素都正确。

8 = 不可能 AND 9 = 是 OR 8 !=
不可能 AND 9 = 否 - 正常的悟性

现在这与列表框有何关系,我不确定,可能需要更多细节?

var item = new ListItem(stringBuilder.ToString());
listBox.Items.Add(item);

???

If you need to know how to read an attribute via XDocument it is as simple as doing xElement.Attribute("Operation")

Now to actually get the string structure you want it all you need to do is loop through your terms and append them to a string.

var xDocument = XDocument.Parse(x);
var stringBuilder = new StringBuilder();
foreach (var xElement in xDocument.Descendants("term"))
{
    var operationValue = xElement.Attribute("Operation") == null ? string.Empty : xElement.Attribute("Operation").Value;
    stringBuilder.AppendFormat("{0} {1} {2} {3} ", 
                                    xElement.Element("IF_ID").Value, 
                                    xElement.Element("Ratio").Value,
                                    xElement.Element("IF_Value").Value,
                                    operationValue);
}
stringBuilder.AppendFormat("- {0}", xDocument.Descendants("value").First().Value);

This assumes that you will have a value for each element and there is only one <rule/>. Null checks would be needed to make it correct for each element.

8 = impossible AND 9 = yes OR 8 !=
impossible AND 9 = no - normal savvy

Now how this relates to a listbox I am not sure and might require a bit more detail?

var item = new ListItem(stringBuilder.ToString());
listBox.Items.Add(item);

???

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文