标签: xml-literals

如何在XML Literals(VB.NET)中阻止嵌入式表达式的HTML编码?

使用以下代码:

Dim x As System.Xml.Linq.XElement = _
<div>
<%= message.ToString() %>
</div>
Dim m = x.ToString()
Run Code Online (Sandbox Code Playgroud)

...如果消息是HTML,则<和>字符将转换为&lt;&rt;.

如何强制它跳过此编码?

vb.net xml-literals

7
推荐指数
1
解决办法
1692
查看次数

可以使用VB.NET中的XML Literals进行递归吗?

我有一个名为Profile的类,它有一些简单的属性,然后它可以有一个ProfileItem的集合,它再次具有一些简单的属性,然后它可以有一个ProfileItem(RECURSION)的集合.

现在我尝试使用VB.NET(3.5)附带的XML Literals生成一个非常简单的保存函数.

我使用的代码如下:

  Dim xdoc As XDocument = _
            <?xml version="1.0" encoding="utf-8"?>
            <profiles>
                <%= _
                    From p In _Profiles _
                    Select <profile name=<%= p.Name %>>
                               <%= _
                                   From i In p.GetProfileItems _
                                   Select <item>
                                              <name><%= i.Name %></name>
                                              <action><%= i.Action.ToString %></action>
                                              <type><%= i.Type.ToString %></type>
                                              <arguments><%= i.Arguments %></arguments>
                                              <dependencies>
                                                  <%= _
                                                      From d In i.GetDependencies _
                                                      Select <dependency>
                                                                 <name><%= d.Name %></name>
                                                             </dependency> _
                                                  %>
                                              </dependencies>
                                          </item> _
                               %>
                           </profile> _
                %>
            </profiles>
Run Code Online (Sandbox Code Playgroud)

与标记相关的部分应该变为递归,但我不知道它是否以某种方式支持此语法.

我是否应该重写所有避免使用XML Literal来实现递归?

vb.net recursion xml-literals .net-3.5

7
推荐指数
1
解决办法
1481
查看次数

编程支持XML文字的语言

什么是本机或通过扩展支持XML文字的所有编程语言?我知道VB.NET,ScalaFactor.还有其他人?

programming-languages xml-literals

7
推荐指数
4
解决办法
478
查看次数

JavaScript中的XML文字?

E4X(Ecma-357)是ECMAScript的扩展,它将XML文字添加为第一类基元.这很棒,但只有Mozilla和Adobe的支持(没有V8和IE支持),从Web开发人员的角度来看,E4X几乎已经死了,它必须支持用户使用任何现代浏览器.

在JavaScript中实现XML文字还有哪些其他工作要做?有没有办法在JavaScript中获得类似于XML文字或E4X的东西,任何人都在努力?也许是框架的一些插件?

前几天我遇到过LunaScript(asana.com/Luna),它用类似JavaScript的语言实现了XML文字.这很好,但我可能永远不会在Asana工作,因此永远不会写LunaScript.

javascript xml primitive e4x xml-literals

6
推荐指数
1
解决办法
1981
查看次数

条件XML文字

我试过这个搜索但似乎无法在任何地方找到答案,所以希望有人在这里可以提供帮助.我想根据计数是否高于1来插入条件XML标记,但我不知道该怎么做.

例如,我有两个像这样的XElements:

<Blob>
<Group>
Stuff 1
</Group>
</Blob>
Run Code Online (Sandbox Code Playgroud)

<Blob>
<Group>
Stuff 1
</Group>
<Group>
Stuff 2
</Group>
</Blob>
Run Code Online (Sandbox Code Playgroud)

我希望这最终成为第一个:

<BigGroup>
<Group/>
</BigGroup>
Run Code Online (Sandbox Code Playgroud)

而对于第二个:

<BigGroup>
<Groups>
<Group/>
<Group/>
</Groups>
</BigGroup>
Run Code Online (Sandbox Code Playgroud)

请注意,在第二个中,它们是围绕两个组的标记.

所以,我想在XML Literal中使用这个条件.我试过的是:

Dim groups = If(<Blob>.<Group>.Count > 1, <Groups/>, Nothing)

Dim bigGroup = <BigGroup><%= groups %><%= from e in <Blob>.<Group> select e %><%= groups%></BigGroup>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有没有人有办法在XML Literal中按上述方法执行此操作?

vb.net linq-to-xml xml-literals

5
推荐指数
1
解决办法
2199
查看次数

为什么动态XML文字不会继承默认命名空间

我有一个XElement,我需要通过动态xml文字/嵌入式表达式创建,我需要它继承默认命名空间.通过我尝试的一切,这似乎不可能.有谁知道如何使这项工作?

例如

Imports <xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
Sub CreateXAML()
        Dim obj = "Rectangle"
        Dim objFill As String = obj & ".Fill"
        Dim myXML As XElement = <<%= obj %>><<%= objFill %>>no namespace</></>

        Dim myXML2 As XElement = <Path><Path.Fill>inherits namespace</Path.Fill></Path>
        MsgBox(myXML.ToString & vbCrLf & myXML2.ToString)
End Sub
Run Code Online (Sandbox Code Playgroud)

第一个,myXML不是使用默认ns创建的,而第二个myXML2是,.

vb.net xml-literals

5
推荐指数
0
解决办法
588
查看次数

如何在VB.NET中将XElements嵌入到XML文本中?

在VB.NET中,我可以轻松地将字符串嵌入到XML文字中<xml><%= "my string" %></xml>.

我该如何嵌入XElement实例?

我知道我可以在XElement,XNode等类上使用方法,但是如果可能的话我想在XML文字中这样做.

xml vb.net linq-to-xml xml-literals

5
推荐指数
1
解决办法
771
查看次数

在XML Literals中使用字符串

我是一个C#开发人员,他在VB6编写的第一个VB代码中摸索着,所以如果我问一个相当明显的问题,请原谅我.

我决定尝试使用XML Literals为我生成一些XML代码,而不是使用XMLDocument

我有两个问题,第二个问题是由于我无法找出第一个问题而解决的问题.

1:理想的解决方案

我有一个ElementName字典,ElementValue我的KeyValue对我循环,希望动态生成值,但下面的语法死了可怕的死亡

Dim xConnections As XElement        
For Each connection As Connection In connections.AsList
    For Each kvp As KeyValuePair(Of String, String) In connection.DecompiledElements
        xConnections = <Connections> <<%= kvp.Key %>><%= kvp.Value %><\<%=kvp.Key %>>  </Connections>
    Next
Next
Run Code Online (Sandbox Code Playgroud)

我对T4语法(<%=%>语法)的模糊记忆能够处理更复杂的操作(而不是直接赋值给<%=)和'Response.Write'这样的对象来写输出,但是我不记得细节了.

2:Cludgy解决方法

相反,我想到构建一个StringBuilder对象并将其.ToString分配给XElement,但是也因转换错误而失败.

我更愿意在上面的例子中继续使用我的键值对概念,因为我觉得上面的例子2中的字符串在一起非常讨厌,如果相反,我真的应该回到使用XMLDocument.

任何想法或帮助非常感谢

xml vb.net xml-literals

3
推荐指数
1
解决办法
1829
查看次数

带有Linq语句的XML Literal

我将执行XSLT转换,将XML转换为HTML表.这是表格数据,所以这就是我不使用div的原因.;)

无论如何,我需要重复XSLT的一部分,以获得我的一个集合的大小.这是代码的片段......

Dim styleSheet = <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
  xmlns:rh="ReportHub"
  exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes" />
  <xsl:template match="rh:Report/rh:Tablix1/rh:Details_Collection">
    <xsl:variable name="alternating-row" select="position() mod 2" />
    <table class=<%= dataFormatter.formattingTableClass %>>
      <xsl:choose>
        <xsl:when test="count(rh:Details)=0">
          <tr>
            <td>There are no items listed for this client</td>
          </tr>
        </xsl:when>
        <xsl:otherwise>
          <xsl:for-each select="rh:Details">
            <tr class=<%= dataFormatter.formattingTRClass %>>
              <xsl:variable name="mainrow-position" select="position()" />
              <xsl:for-each select="@*">
                <%= From x In dataFormatter.dataColumnSettings Select 
                  <xsl:if test="name() != 'colName'">
                    <xsl:choose>
                      <xsl:when test="$mainrow-position=1">
                        <th>
                          <xsl:value-of select="name()"/>
                        </th>
                      </xsl:when>
                      <xsl:otherwise>
                        <td>
                          <xsl:value-of select="."/> …
Run Code Online (Sandbox Code Playgroud)

linq vb.net xslt xml-literals

2
推荐指数
1
解决办法
1076
查看次数

vb .net CDATA,用于存储SQL多行字符串,与VB变量混合

我正在使用CDATA将所有多行SQL字符串“按原样”存储(感谢一些stackoverflow旧答案),如下所示:

Dim cmd As String = <![CDATA[
INSERT INTO devices
VALUES (
    NULL , 
    'ONE', 
    'TWO', 
    (
        SELECT manufacturer_id FROM manufacturers WHERE manufacturer_name = "Bloom"
    )
)
]]>.Value()
Run Code Online (Sandbox Code Playgroud)

问题是我需要使用VB变量来解决这个问题。还有另一种方法来代替多个CDATA吗?

<![CDATA[ ...... ]]>.Value() + myVBvar +  <![CDATA[ ...... ]]>.Value()
Run Code Online (Sandbox Code Playgroud)

vb.net xml-literals

2
推荐指数
1
解决办法
3979
查看次数