parent-child 相关问题

实体之间的关系,其中一个扮演主要角色,另一个扮演次要角色。也是一种继承关系范式。

如何使用 C# 库在 XML 文件中从一行移动到另一行

我想用 C# 阅读以下结构。它用于存储类似矩阵的元素集(在实例中为正方形)。 我想用 C# 阅读以下结构。它用于存储类似矩阵的元素集(实例中为正方形)。 <Parent> <Child AttrName11="", AttrName12="", AttrName13="" /> <Child AttrName21="", AttrName22="", AttrName23="" /> <Child AttrName31="", AttrName32="", AttrName33="" /> </Parent> 我正在根据输入属性名称(例如 AttrNameXX)搜索给定的对角线属性值,并希望遍历不同的行,直到获得 AttrNameXX 上的第一个匹配项,即在 {AttrName11, AttrName22, AttrName22 内}。为此,我需要从一个孩子转移到下一个孩子。 我开了一个 XmlDocument doc 我已经到达父节点了 doc.SelectSingleNode(ParentPath) 我已经到达第一个子节点 doc.SelectSingleNode(ChildPath) 我找不到移动到下一个子节点的命令。 就这么简单 XmlNode node = doc.SelectSingleNode(ChildPath); var nextNode = node.NextSibling(); 鉴于您修复了 xml,所以它当然是有效的。 XML 属性不以逗号分隔。删除逗号。 <Parent> <Child AttrName11="a" AttrName12="b" AttrName13="c" /> <Child AttrName21="d" AttrName22="e" AttrName23="f" /> <Child AttrName31="g" AttrName32="i" AttrName33="j" /> </Parent> 我会将这些值读入二维数组(矩阵)。推理起来更容易,而不必同时担心解析 XML 的细节。 string[,] matrix = new string[3, 3]; for (int i = 0; i < 3; i++) { var row = doc.Root.Elements().ElementAt(i); for (int j = 0; j < 3; j++) { var col = row.Attributes().ElementAt(j); matrix[i, j] = col.Value; } } 如果您使用其他属性,则通过索引访问属性可能会失败。但您也可以通过名称访问属性: matrix[i, j] = row.Attribute($"AttrName{i + 1}{j + 1}")?.Value; 我们可以通过以下方式测试我们是否读取了正确的数据: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { Console.Write(matrix[i, j] + " "); } Console.WriteLine(); } 我们可以像这样搜索对角元素: // Searching for "e" diagonal element: for (int i = 0; i < 3; i++) { if (matrix[i, i] == "e") { Console.WriteLine($"m[{i},{i}]= {matrix[i, i]}"); } }

回答 2 投票 0

避免从子父关系生成字典时出现循环

我正在尝试根据子父关系创建一棵字典树,但这里的问题是子项可以包含他的前辈之一,从而生成我想避免的循环。

回答 1 投票 0

为什么html同级元素不会变得相同高度?

**这是我在这个网站上的第一个问题,在网络开发方面我几乎是一个新手,所以如果这是一个令人难以置信的愚蠢问题,我提前表示抱歉,但我永远不能。 ..

回答 1 投票 0

Elasticsearch QueryBuilders 可以获取所有有孩子的父母

Query query = new NativeSearchQueryBuilder()我的文档在 Elastic Search 映射中既是父文档又是子文档。而且因为孩子们经常更新,所以选择了这个连接而不是

回答 1 投票 0

Karate UI - 通过父级包含类的属性查找 html 元素

我有这个代码: ` 我... 我有这个代码: `<div class="form-group"> <div class="col-md-3"> <label class="control-label" for="fieldIsReadonly">Is Read Only?</label> </div> <div class="col-md-9 field-properties"> <input id="fieldIsReadonly" type="checkbox" class="checkbox" value="true" aria- invalid="false">`your text` </div> </div>` 我想搜索#fieldIsReadonly并检查父div是否具有“form-group”类。 这在空手道中可能吗? 使用 CSS 选择器不是那么简单吗: * locate(".form-group label[for='fieldIsReadonly']") 其他想法请参考此: https://stackoverflow.com/a/65590055/143475 | https://stackoverflow.com/a/66900081/143475 在空手道中你可以做这样的事情 waitFor("//tr[td[text()='...']]//a[@class='...']").click().这将点击您想要的元素

回答 2 投票 0

如何使用 jQuery 禁用主体滚动,但不禁用子元素?

当我有弹出div(例如照片库查看器等)时,我想禁用主体滚动,但是我不希望为子元素禁用滚动。 我现在就用这个,

回答 2 投票 0

简单的 SQL 检查父级是否有子行

我显示一个包含父数据的网格,并且如果存在相关子行,则需要显示图标。我的数据库位于 SQL Server 2008 中。让我简化一下,我有以下两个表 - 订单(PK:ID) ...

回答 3 投票 0

使用兄弟排序器在父子表中进行深度优先树遍历,以实现总的“排序器”

我使用的系统将分层数据存储在父子表(邻接表)中: 代码 父代码 分拣机 标题 A (无效的) 0 ... 乙 A 0 ... C A 1 ... D C 0 ... 乙 D 0 ... F C 1 ... G C 2 ... ...

回答 1 投票 0

SQL Server:使用兄弟排序器在父子表中进行深度优先树遍历,以实现总“排序器”

我使用的系统将分层数据存储在父子表(邻接表)中: 代码 父代码 分拣机 标题 A (无效的) 0 ... 乙 A 0 ... C A 1 ... D C 0 ... 乙 D 0 ... F C 1 ... G C 2 ... ...

回答 0 投票 0


Javascript 选择删除元素的标记名并将内容附加到 ParentNode

我有这个: 一个 易捷航空飞行员 已经告诉游客,飞往 罗德 是一个“可怕的 我有这个: <p> An <span class="item1">easyJet pilot</span> has told tourists that flying to <span class="item2">Rhodes</span> is a “terrible idea” just minutes before taking off, it has been reported, as <span class="item3">wildfires spread across Greece</span> journalist Gwyn Loader, who was on the flight to the island to report for BBC Wales Welsh-language news programme Newyddion, said <span class="item4">eight passengers</span> subsequently decided to disembark, including a young boy who was in tears. </p> 如果我选择一个跨度或跨度的一部分,我想删除跨度标记名并将所选文本附加到 parentNode 例如,在 中,如果我选择“across”,我希望将其从跨度中删除并附加到 parentNodep。因此,它将创建 2 个跨度,因为“野火蔓延”将是一个跨度,而“希腊”将是一个新的跨度。 我可以用这个来做到这一点: const element = document.querySelector('span'); element.outerHTML = element.innerHTML 但这会一一删除跨度元素,而不是我可以使用鼠标选择的元素。 所以我尝试创建一个函数: function cleanup() { const selObj = window.getSelection(); const selRange = selObj.getRangeAt(0); selRange.outerHTML = selRange.innerHTML } 但是它不起作用,尽管我没有错误。问题出在选择上,但我不知道如何解决它。 我错过了什么? 非常感谢您的帮助, 您需要为跨度添加事件监听器,然后替换如下内容。 document.querySelectorAll('span').forEach(sp => { sp.addEventListener('click', e => { e.target.outerHTML = e.target.innerHTML; }); }); 您当前方法的问题是您试图直接修改所选范围的outerHTML,这是不受支持的。相反,您应该使用范围对象的 extractContents() 方法将所选内容作为文档片段获取,从该片段中删除 元素,然后将修改后的片段插入回文档中。 <p> An <span class="item1">easyJet pilot</span> has told tourists that flying to <span class="item2">Rhodes</span> is a “terrible idea” just minutes before taking off, it has been reported, as <span class="item3">wildfires spread across Greece</span> journalist Gwyn Loader, who was on the flight to the island to report for BBC Wales Welsh-language news programme Newyddion, said <span class="item4">eight passengers</span> subsequently decided to disembark, including a young boy who was in tears. </p> <script> function cleanup() { const selObj = window.getSelection(); const selRange = selObj.getRangeAt(0); // Create a new div element to hold the selected content const tempDiv = document.createElement('div'); tempDiv.appendChild(selRange.cloneContents()); // Remove span tags from the selected content const spanElements = tempDiv.querySelectorAll('span'); spanElements.forEach(span => { const textNode = document.createTextNode(span.textContent); span.parentNode.replaceChild(textNode, span); }); // Insert the modified content back into the document selRange.deleteContents(); selRange.insertNode(tempDiv); // Clear the selection selObj.removeAllRanges(); } // Example: Call the cleanup function when a span is clicked const spans = document.querySelectorAll('span'); spans.forEach(span => { span.addEventListener('click', cleanup); }); </script>

回答 2 投票 0

如果多次使用,具有输入属性的可重用组件将无法在父组件上正确呈现

我创建了一个可重用组件(星级评定),我计划在多个地方使用它来对不同的事物进行评分,当我仅使用可重用组件一次时它工作正常,但事实并非如此

回答 3 投票 0

查询父子实体数据累计数量

如何进行查询以将实体及其子实体的数据聚合到最低级别? 我有两张桌子。 第一个是 tblEntity,一个带有实体和父实体的自连接表

回答 0 投票 0

dotnet项目关闭时不要终止进程

我正在为 Linux 系统(debian)开发一个 dotnet 应用程序。我想从我的应用程序在 Linux 上运行命令。我正在使用这种方法运行命令。如果可以的话我真的不想改变。 公共圣...

回答 0 投票 0

每 3 个元素包裹一个父元素

我只是想用一类搜索音频围绕每 3 个 div 包装一个 div w 类幻灯片。 我遇到的一个错误是它说 elem.parentElement 是未定义的...... 所以部分工作......

回答 3 投票 0

具有动态条件的雪花 LAST_VALUE

我想在带有组的排序层次结构中确定孩子的父母。我试图使用 LAST_VALUE,但直到现在我都无法使用

回答 0 投票 0

针对动态创建的孩子

这是一个很长的:) 我有一个生成几个元素的异步函数。我的问题是我想控制台记录我单击的元素的标题。我之前用过e.target指向...

回答 1 投票 0

子进程不能用信号操作

我在将信号从父进程传递给子进程时遇到问题,因为它就像孩子没有正确打开一样,因为当我这样做时 if(oct_pid == 0) 我无法进入。 计算器.c #包括 我在将信号从父进程传递给子进程时遇到问题,因为它就像孩子没有正确打开一样,因为当我这样做时 if(oct_pid == 0) 我无法进入。 计算器.c #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <string.h> #include <sys/file.h> #include <signal.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> void octal(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%o",valor); } } void hexa(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%X",valor); } } void handler(int signal){} int main(){ int canal,pipe_fd[2],octal_pid,hexa_pid; unlink("canal"); if(mkfifo("./canal", 00660)!=0){ printf("Error al crear la pipe"); exit(EXIT_FAILURE); } canal = open("./canal",O_RDONLY); if(canal < 0){ printf("Error al obrir la pipe."); exit(EXIT_FAILURE); } pipe(pipe_fd); octal_pid = fork(); if(octal_pid == -1){ printf("Error al crear el proceso octal.\n"); exit(EXIT_FAILURE); } else if(octal_pid == 0){ close(pipe_fd[1]); octal(pipe_fd[0]); signal(SIGUSR1,octal); } else { hexa_pid = fork(); if(hexa_pid == -1){ printf("Error al crear el proceso hexadecimal.\n"); kill(octal_pid, SIGTERM); exit(EXIT_FAILURE); } else if(hexa_pid == 0){ close(pipe_fd[1]); hexa(pipe_fd[0]); signal(SIGUSR1,hexa); } else { close(pipe_fd[0]); while(1){ char c; int valor; read(canal,&c,sizeof(char)); read(canal,&valor,sizeof(int)); if(c == 'o'){ printf("Calculant en octal ... \n"); write(pipe_fd[1], &valor, sizeof(int)); kill(octal_pid,SIGUSR1); } else if(c == 'h'){ printf("Calculant en hexadecimal ... \n"); write(pipe_fd[1], &valor, sizeof(int)); kill(hexa_pid,SIGUSR1); } else if( c == 'x'){ printf("Sortint...\n"); kill(octal_pid, SIGTERM); kill(hexa_pid, SIGTERM); break; } } close(canal); close(pipe_fd[1]); waitpid(octal_pid, NULL, 0); waitpid(hexa_pid, NULL, 0); } } return 0; } client.c #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <string.h> #include <sys/file.h> #include <signal.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/wait.h> int fd, valor; char operacio; int llegir_numero() { char buff [10]; int llegits; llegits=read(0, buff, 10); //llegir del teclat un màxim de 10 chars buff[llegits-1] = (char)0; //canvi del \n per un \0 return(atoi(buff)); //es converteix a enter } int main(){ fd = open("./canal",O_WRONLY); if(fd < 0){ printf("La pipe no s'ha obert correctament."); exit(EXIT_FAILURE); } do{ printf("Introdueix 'o' o 'h', x per acabar\n"); scanf(" %c",&operacio); if(operacio == 'o' || operacio == 'h'){ printf("Introdueix un valor enter positiu:\n"); valor = llegir_numero(); write(fd,&operacio,sizeof(char)); write(fd,&valor,sizeof(int)); } else if(operacio != 'x'){ printf("Lletra incorrecte."); } } while(operacio != 'x'); close(fd); return 0; } 我在这段代码中遇到了 kill(octal_pid,SIGUSR1) 的问题,理论上,当我向子进程 octal_pid 发送信号时,它没有工作,因为我无法进入这个管道,我知道为什么。 谢谢帮助 首先,阅读这个: sigaction和signal有什么区别? 你真的需要在 POSIX 系统上使用 sigaction() 而不是 signal(). 第二,给出 void octal(int fd){ int valor; while (1) { pause(); read(fd,&valor,sizeof(int)); printf("%o",valor); } } 这是错误的: signal(SIGUSR1,octal); 因为传递给信号处理程序的 int 参数是 signal 的值 - 而不是某个文件描述符。您需要找到另一种方法将正确的文件描述符值传递给信号处理程序。 此外,您需要安装信号处理程序(使用sigaction())before您调用fork(),否则您的子进程可以很好地发送信号甚至在父进程安装其信号处理程序之前完成运行. 最后,同一类型的多个信号可以合并为一个信号,因此如果您的子进程发送例如 8 个SIGUSR1 信号,父进程可能只会得到其中一个。还要注意这个问题和答案:Blocking signals in C

回答 1 投票 0

SELECT for a Parent, Children and ORDER BY [Order] column

我在 SQL Server 中有一个表 myTable,如下所示: ID 父母身份 命令 1个 1个 1个 2个 2个 1个 3个 3个 1个 4个 1个 2个 5个 1个 1个 6个 1个 3个 7 4个 1个 8个 2个 2个 9 2个 1个 100 3个 1个 10 10 1个 194 10 1个 295 194 1个 205 194 2个 215 1...

回答 2 投票 0

Superset - 无法使用超集 CUSTOM SQL 将 onclick 处理程序添加到锚点 (<a>) 标记

我正在尝试使用超集 CUSTOM SQL 将 onclick 处理程序添加到标记 连接(' 我正在尝试使用超集 CUSTOM SQL 向标签添加一个 onclick 处理程序 CONCAT('', CLICK_LINK_TEXT, '') 渲染此元素后,渲染的超集内容中缺少 onclcik 属性。看起来像 点击 有什么方法可以将点击处理程序添加到超集仪表板中的元素。将信息传递给父窗口。

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.