0

私はこの投稿にあるのと本質的に同じ質問をしています:1行のコードでCData値のワンショットリターンを試みることを除いて、XDocumentからXMLノードを取得する方法。以下の関数の戻り値を正しく機能させようとしています:

private string RetrieveFormattedString(string controlId)
{
    return template.Descendants("Template")
      .Where(templateNode => templateNode.Value == controlId)
      .Where(tmp => tmp.Name == "Format").Select(y => y.Value).ToString();
}

私は以下のXMLを持っています:

<?xml version="1.0" encoding="utf-8" ?>
  <Templates>
    <Template>
      <Name>NodeName1</Name>
        <Parameter Type="TextBox" Name="conferenceID">{__otcConferenceID__}</Parameter>
        <Parameter Type="TextBox" Name="conferenceCode">{__otcConferenceCode__}</Parameter>
        <Format>
          <![CDATA[ <b>NodeName1</b><br /> <table><tr><td>iPhone</td><td>{__otcConferenceID__},#,{__otcConferenceCode__}</td></tr></table>]]>
        </Format>
     </Template>
     <Template>
        <Name>NodeName2</Name>
        <Parameter Type="TextBox" Name="conferenceID">{__otcConferenceID__}</Parameter>
        <Parameter Type="TextBox" Name="conferenceCode">{__otcConferenceCode__}</Parameter>
        <Format>
            <![CDATA[ <b>NodeName2</b><br /> <table><tr><td>iPhone</td><td>{__otcConferenceID__},#,{__otcConferenceCode__}</td></tr></table>]]>
        </Format>
    </Template>
</Templates>

私はこれを間違って行っていることを知っており、より多くの目を向けることを望んでいました。

4

1 に答える 1

4
private string RetrieveFormattedString(XDocument xDoc, string nodeName)
{
    return xDoc.Descendants("Template")
                .First(t => t.Element("Name").Value == nodeName)
                .Element("Format").Value;
}
于 2013-01-24T22:05:24.887 に答える