我在使用XPath时遇到问题并包含函数.想象一下下面的XML示例:
<doc>
<Test>
<Name>1 Pre Histoy</Name>
<Type>Known</Type>
<Data>
<Name>Dinasor</Name>
<Name>Fish</Name>
</Data>
</Test>
<Test>
<Name>1 Post Histoy</Name>
<Type>Known</Type>
<Data>
<Name>Human</Name>
<Name>Dog</Name>
</Data>
</Test>
<Test>
<Name>1 Post Histoy</Name>
<Type>UNKNOWN</Type>
<Data>
<Name>Human</Name>
<Name>Dog</Name>
</Data>
</Test>
</doc>
Run Code Online (Sandbox Code Playgroud)
所以我想做的是返回节点<Name>内的所有文本<Data>,并遵循以下标准:
doc//Test/Name 应包含"Pre"文本
doc//Test/Type 应该是"知名的"
我需要的是这样的查询,但到目前为止我无法管理它
/doc//Test[Name contains(.,'Pre') and Type='Known']/data//Name
Run Code Online (Sandbox Code Playgroud)
任何帮助和提示将不胜感激.
我有一个MDI表格.在此MDI表单中,我可以使用以下命令打开一些子表单:
这是在 MainForm
Form1 f1 = new Form1;
f1.MdiParent = this; //this refers to MainForm (parent)
f1.Show();
Run Code Online (Sandbox Code Playgroud)
这按预期工作!
但是现在,当我处于子形式(Form1 - > f1)时,我想打开另一个形式作为孩子,MainForm但是当我使用this关键字时,它会受到影响f1.如何打开新表单f1并将其设置MdiParent为MainForm?
我在Windows窗体UI上有一个treeview控件,它有几个节点(有多个子节点).我想查询节点集合,以便比如说1.选择名称以'x'开头的
那些2.选择那些在Node.Tag字段中没有任何数据的节点.
有人可以建议我这样做的方法.Linq会让它变得简单和整洁,但我在Linq上找不到任何查询TreeNodeCollection的内容.
谢谢,
我正在设计一个简单的图片浏览器,能够进行一些基本的图像处理.目前我的问题PictureBox是TabPage始终保持居中,并保持图片框的宽度和大小与其显示的图片相同.到目前为止,我没有成功.
我有以下代码,我在表单构造函数中调用它来将其定位在中心.它第一次使图片框居中:
private void SetPictureBoxOriginalSizeAndLocation(bool makeImageNull = false, DockStyle dockStyle = DockStyle.None)
{
if (makeImageNull) picBoxView.Image = null;
picBoxView.Dock = dockStyle;
var xPoint = tabImageView.Location.X + ((splitContainer.Panel2.Width / 2) / 2);
var yPoint = tabImageView.Location.Y;
var width = tabImageView.Width / 2;
var height = (tabImageView.Height / 2) - toolStripImageView.Height;
if (picBoxView.Image == null) return;
//Resize image according to width
picBoxView.Image = ImageMethods.ResizeImage(picBoxView.Image.Tag.ToString(), width, height, false);
picBoxView.Location = new Point(xPoint, yPoint);
picBoxView.Width = width;
picBoxView.Height = height; …Run Code Online (Sandbox Code Playgroud) 这个问题并不完全是关于代码而是实现.
我正在开发一款需要检查手机是否放入口袋的应用程序.我有一个简单的算法来检测行走时的用户步骤.问题是手中的移动也可以注册为一个步骤,例如当用户运行应用程序并将步骤值从他/她执行此操作的时间归零到手机放在口袋中时,应用程序会注册几个步骤.
我的想法是检查接近传感器,看看手机是否放在口袋里.
我对加速计传感器的处理是我继续读取缓冲区中的加速度计值,当缓冲区满了,然后计算步数(计算时,缓冲区仍在接受新的加速度计读数).
因为我听说接近传感器是基于中断而不是基于轮询的(如acc传感器).我如何将这两者协调在一起?
如果我在将acc值写入缓冲区之前检查接近度是否安全,并在计算开始时再次检查它,如果接近度不是FAR模式,我可以假设手机放在口袋里?
欢迎任何建议!
我试图使用以下代码将树视图(完全)的整个树(完全所有节点)复制到另一个树视图:
TreeNodeCollection myTreeNodeCollection = treeView1.Nodes;
TreeNode[] myTreeNodeArray = new TreeNode[treeView1.Nodes.Count];
treeView1.Nodes.CopyTo(myTreeNodeArray, 0);
treeView2.Nodes.AddRange(myTreeNodeArray);
Run Code Online (Sandbox Code Playgroud)
但这不允许我这样做,它要求删除源treeview中的节点或使用它克隆!我怎样才能做到这一点?我不希望我的源treeview在这个过程中丢失任何东西.
**更新**好的我发现了一个复杂的代码(对我来说!!)但是我该如何使用它?
public static T DeepTreeCopy<T>(T obj)
{
object result = null;
using (var ms = new MemoryStream())
{
var formatter = new BinaryFormatter();
formatter.Serialize(ms, obj);
ms.Position = 0;
result = (T)formatter.Deserialize(ms); ms.Close();
}
return (T)result;
}
Run Code Online (Sandbox Code Playgroud) 在我的C#WinForms程序中,我有一个只包含父节点的树视图(因此,没有子节点)它就像一个列表框,但我需要它,因为它具有Name,Tag和Text等节点的不同属性.
不,我希望能够将此树视图的内容保存到文件中(基本上是一个文本文件,我称之为*.MVIA).问题是什么是保存文件中节点的所有三个属性的最佳方法,以便以后可以再次加载?
目前我提出了这个想法:
private void menuFileSave_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
foreach(TreeNode node in treeViewFiles.Nodes)
{
sb.AppendLine(node.Name);
}
SaveFileDialog saveList = new SaveFileDialog();
saveList.DefaultExt = "*.mvia";
saveList.Filter = "MVIA Files|*.mvia";
if (saveList.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveList.FileName, sb.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,每个节点的每个Name属性都将保存在一行中.现在我还需要添加它的Text和Tag属性,但后来我很难读回来(老实说我不知道怎么做).
你能给我一些想法,保存每个节点的所有三个属性的最佳方法是什么,以后能够轻松加载它?
谢谢.
我有这样的课
public class TestData
{
public string Name {get;set;}
public string type {get;set;}
public List<string> Members = new List<string>();
public void AddMembers(string[] members)
{
Members.AddRange(members);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能直接与这个类的实例进行比较,并发现它们完全相同?机制是什么?我正在寻找类似的东西if(testData1 == testData2) //Do Something,如果没有,怎么办呢?
在我的C#WinForms应用程序中,我有一个托管2条曲线的图片框(由电压/电流测量引起).X轴是电压,Y轴是电流.电压轴的范围为-5到5,但电流轴的范围小得多,范围从-10 uA到10 uA.任务是查看第二条曲线是否在第一条曲线的10%范围内.
为了目视检查,我试图围绕第一条曲线绘制一个信封(蓝色).曲线只是一个PointF数组.目前因为我不知道如何在蓝色曲线周围绘制一个正确的包络线,我只绘制了另外两条曲线,这些曲线是实际曲线的X点加上并减去原始曲线的10%.当然这是一个糟糕的方法,但至少曲线的部分是明显垂直的,它起作用.但是一旦曲线处于非垂直部分,这个技巧就不再起作用了,如下图所示:

这是我用来绘制信封的代码:
public Bitmap DrawEnvelope(double[,] pinData, float vLimit, float iLimit)
{
g = Graphics.FromImage(box);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
PointF[] u = new PointF[pinData.GetLength(0)]; //Up line
PointF[] d = new PointF[pinData.GetLength(0)]; //Down Line
List<PointF> joinedCurves = new List<PointF>();
float posX = xMaxValue * (vLimit / 100);
float minX = posX * -1;
for (int i = 0; i < pinData.GetLength(0); i++)
{
u[i] = new PointF(400 * (1 + (((float)pinData[i, 0]) + minX) / …Run Code Online (Sandbox Code Playgroud) 我不确定我的问题是否与Ubuntu或Java有关,所以请原谅我!
我正在尝试编译java程序,但是我收到以下错误:
package javax.comm does not exist
Run Code Online (Sandbox Code Playgroud)
我已经下载了所需的软件包,comm.jar但我不知道如何/在哪里安装/复制此文件.
我在某处读到这应该在CLASSPATH 文件夹中,但我没有这个文件夹.
这就是我得到的,java -version我想这意味着我已经在我的系统中安装了Java:
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我也有这些文件夹/usr/lib/jvm/:
default-java java-1.7.0-openjdk-i386 java-6-openjdk-i386
java-1.6.0-openjdk java-6-openjdk java-7-openjdk-common
java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386
Run Code Online (Sandbox Code Playgroud)