小编cdh*_*wie的帖子

XPathNavigator帮助

这是我正在使用的XML示例(可从任何wiki的Special:Export/SomePage结果中检索):

<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.4/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.4/ http://www.mediawiki.org/xml/export-0.4.xsd" version="0.4" xml:lang="en"> 
  <siteinfo> 
    <sitename>Wikipedia</sitename> 
    <base>http://en.wikipedia.org/wiki/Main_Page</base> 
    <generator>MediaWiki 1.16wmf4</generator> 
    <case>first-letter</case> 
    <namespaces> 
      <namespace key="-2" case="first-letter">Media</namespace> 
      <namespace key="-1" case="first-letter">Special</namespace> 
      <namespace key="0" case="first-letter" /> 
      ...
    </namespaces> 
  </siteinfo> 
</mediawiki> 
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有我能想到的东西,直接"跳转"到siteinfo节点并迭代结果,除非我从根目录手动浏览每个子节点,否则没有任何作用.我已经尝试了各种各样的.Move*和.Select*方法的百万种变化,看起来我只是把头靠在墙上,但我现在的变体看起来像这样:

StringReader strr = new StringReader(_rawData);
XPathDocument xd = new XPathDocument(XmlReader.Create(strr, Bot.XmlReaderSettings));
XPathNavigator xn = xd.CreateNavigator();
XPathNodeIterator xni = xn.Select("/mediawiki/siteinfo");
foreach (XPathNavigator nav in xni)
    Console.WriteLine(nav.LocalName);
Run Code Online (Sandbox Code Playgroud)

这不会返回任何结果.我究竟做错了什么?

c# xml xpath xpathnavigator

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

string.IsNullOrEmpty(string)'有一些无效的参数

我将MVC 3.5转换为MVC2 4.0,得到一个错误'string.IsNullOrEmpty(string)'的最佳重载方法匹配有一些无效的参数这是我的代码:

<% if (this.Model.VisitId == 0) { %>
        mustSave = true;
    <% } else { %>
        mustSave = false;
    <% } %>
    <% if (String.IsNullOrEmpty(Html.ValidationSummary())) { %>
        dataChanged = false;
    <% } else { %>
        dataChanged = true;
    <% } %>
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# asp.net-mvc-2

3
推荐指数
2
解决办法
4441
查看次数

Unity registerType中泛型参数的多态分辨率

我正在尝试执行以下操作并失败:

class base {}

class derived1 : base {}

class derived2 : base {}

interface itr<t>
where t : class, base
{}

class c1: itr<derived1>
{}

class c2 : itr<derived2>
{}  
Run Code Online (Sandbox Code Playgroud)

//以下2个注册失败:

_unityContainer.RegisterType<itr<base>, c1>("c1");

_unityContainer.RegisterType<itr<base>, c2>("c2");
Run Code Online (Sandbox Code Playgroud)

我得到的错误是上述注册中的第二个参数不能被类型转换为第一个参数,并且该注册无效.有关如何做到这一点的任何建议?
我需要执行上述操作,而不是使用derived1或derived2类作为通用参数进行注册,因为在解析时我不想知道我正在解析的确切派生类型.我只想多态地使用基类型方法.

c# generics inversion-of-control unity-container

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

JQuery - 删除不匹配regEx的字符

我正在尝试使用jquery来验证表单.

这是用户的文本框中允许的模式.

var pattern = /^[a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g;
Run Code Online (Sandbox Code Playgroud)

如果用户键入除此之外的任何其他内容,则必须用""替换.

$(document).ready(function() {
  $('#iBox').blur(function() {
     var jVal = $('#iBox').val();
  if(jVal.match(pattern)) {
   alert("Valid");
  } else {
   alert("New "+jVal.replace(!(pattern),""));
                }
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

但是替换功能不能以这种方式工作.

javascript jquery-validate

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

为什么需要在jquery中为.click函数设置"return false"语句

例:

$("#testdiv").click( function( )
 {
     $("#testdiv2").show( "slow" );
     return false;  // why is this statement required?
 } );
Run Code Online (Sandbox Code Playgroud)

javascript jquery click

3
推荐指数
2
解决办法
1505
查看次数

如何在 Rust 中正确使用 Iterator::chain

我尝试Chain在 Rust 中使用,遇到了一个对我来说似乎很奇怪的问题。我尝试了两个代码片段,其中一个有效,另一个无效。我试图从编译器发出的错误消息中找出问题所在,但找不到任何有用的信息。

片段1

fn main() {

    let v: Vec<_> = (1..5).collect();
    let u = v.iter().chain([6, 7, 8, 9, 10].iter().map(|i| i ));
    u.for_each(|i| println!("{i}"));
}
Run Code Online (Sandbox Code Playgroud)

片段2

fn main() {

    let v: Vec<_> = (1..5).collect();
    let u = v.iter().chain([6, 7, 8, 9, 10].iter().map(|i| i+1 ));
    u.for_each(|i| println!("{i}"));
}
Run Code Online (Sandbox Code Playgroud)

第一个片段成功运行,但第二个片段失败。错误信息是:

   Compiling playground v0.0.1 (/playground)
error[E0271]: type mismatch resolving `<[closure@src/main.rs:5:56: 5:63] as FnOnce<(&{integer},)>>::Output == &{integer}`
 --> src/main.rs:5:28
  |
5 |     let u = v.iter().chain([6, 7, 8, 9, 10].iter().map(|i| i+1 ));
  | …
Run Code Online (Sandbox Code Playgroud)

iterator rust

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

C#Brickbreaker游戏,击中时获得砖块消失

我有一个用于砖块的x坐标的数组,一个用于砖块的y坐标的数组和一个显示天气可见的数组.我的代码如下:

            if (Visible[0] == 1)
            {
                paper.DrawRectangle(pen, BrickX[0], BrickY[0], 50, 10);
            }
Run Code Online (Sandbox Code Playgroud)

为了让我碰到球撞到砖头,代码写道:

        if (Visible[0] == 1)
        {
            if ((x >= BrickX[0]) && (x <= BrickX[0] + 50))
            {

                if ((y >= picDisplayBat.Height - 190) && (y <= BrickY[0] + 10))
                    yChange = -yChange;
                    Visible[0] = 0;
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,因为当球接近砖块时,砖块在碰撞发生之前消失并且球直接穿过它.有什么建议?

c#

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

错误:无法将类型'System.Collections.Generic.LinkedListNode <Edge <T >>'隐式转换为'Edge <T>'

我使用以下代码获取链表工作清单的第一个元素,但我在第2行收到错误

Cannot implicitly convert type System.Collections.Generic.LinkedListNode<Edge<T>>' to 'Edge<T>'

  1. LinkedList<Edge<T>> worklist = new LinkedList<Edge<T>>();
  2. Edge<T> curr = worklist.First;

根据定义.首先上面的代码应该工作.请帮我解决这个问题.

类Edge的定义如下

private sealed class Edge<T>
{

            public  T start;
            public  T end;

    /// <summary>
    /// Constructs a new edge between the two indicated endpoints.
    /// </summary>
    /// <param name="start"> The edge's starting point. </param>
    /// <param name="end"> The edge's endpoint. </param>
    public Edge(T start, T end)
    {
        this.start = start;
        this.end = end;
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

Java矩阵的异常

我用这段代码得到了ArrayIndexOutOfBoundsException,有人能告诉我我做错了什么吗?

public class Test {
    public static void main(String args[]) {

        int[][] matrix = {{1,2,3,4},
                     {1,2,3,4}};

        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; i < matrix[i].length; j++) {
                System.out.print(matrix[i][j]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays syntax matrix

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

如何为包含 HashMap 的结构派生哈希?

我试图声明一个包含 HashMap 的结构,但它不允许我派生哈希。

use std::collections::HashMap;

#[derive(PartialEq,Eq,Hash)]
struct Environment{
    names:HashMap<String,String>,
} 
Run Code Online (Sandbox Code Playgroud)

hashmap rust

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