Могу ли я вставить результаты LINQ в CDATA? - PullRequest
2 голосов
/ 03 января 2011

Могу ли я объединить значения, возвращенные из запроса LINQ (в следующем примере c.day), с CDATA как ...

Dim Result = <items>
             <%= From c In db.News Select _
              <item>
                <day><![CDATA[<font size="30" color="#7CBEBD"><%= c.day %></font>]]></day>
              </item> %>
            </items>

1 Ответ

3 голосов
/ 04 января 2011

Не думаю, что вы можете использовать литералы раздела CDATA и встроенные в них выражения с помощью VB.NET, но вы, безусловно, можете создать узел раздела CDATA с new XCData(), как в следующем примере:

Dim words As String() = {"foo", "bar", "baz"}
Dim doc As XDocument =
    <?xml version="1.0"?>
    <root>
        <items>
            <%= From word In words
                Select <item>
                           <%= New XCData("<font size=""3"">" + word + "</font>") %>
                       </item>
            %>
        </items>
    </root>

Это сериализуется как

<root>
  <items>
    <item><![CDATA[<font size="3">foo</font>]]></item>
    <item><![CDATA[<font size="3">bar</font>]]></item>
    <item><![CDATA[<font size="3">baz</font>]]></item>
  </items>
</root>
...