草庐IT

xml - 如何在 XPath/XQuery 中获取所有后代?

我正在尝试浏览文档以了解其结构。该文档正在提供给我,因此我无法访问原始文档,但我可以对服务器进行查询。我相信它是无模式的。我正在通过属于MarkLogic一部分的CQWeb应用程序访问文档。我基本上希望得到一棵完全填充的树还给我。这看起来真的很容易,但尚未证明是这样。我查看了W3C和其他几个网站,但似乎没有任何效果。提前致谢吉多 最佳答案 也许文档太大而无法返回-如果您正在使用MarkLogic,也许您正在尝试查询包含数千或数百万个子文档的“森林”?了解文档结构而不尝试返回所有文档的一个好方法是使用连续的XPath查询,为您提供元素

c# - 使用 LINQ 从 XML 中选择后代节点和元素

我有一个这样的XML文件:ssssddddccccpppp/>我正在使用XDocument读取XML并创建HTML:XDocumentxmlDoc=XDocument.Load(Server.MapPath("Plugins.xml"));foreach(XElementproductinxmlDoc.Root.Nodes()){counter++;div+=""+product.Attribute("name").Value+"";}testediv.InnerHtml=div;我需要能够从媒体和安装程序访问元素“url”,以及从发行版访问版本和状态。我尝试了以下但它不起作用:var

c# - Linq to XML 选择每个具有特定属性的后代的后代

我找到了很多关于获取具有特定属性的后代的文章,但我似乎找不到任何关于使用LINQtoXML选择具有不同属性的多个后代的文章。因此,在下面的示例中,我需要选择所有Parentname=KenANDChildname=Lorna的Grandchildren。可能,我需要最多4个AND子句,因为我的真实XML比下面的示例更深。我可以通过代码选择Ken的所有子级,但找不到比这更深入的示例。非常感谢任何帮助 最佳答案 这里有多个选项,但我建议最简单的方法就是检查每个Grandchild:vargrandchildren=doc.Descend

xml - 如何将祖先元素下的所有后代文本节点作为单个字符串检索?

这个问题在这里已经有了答案:HowtoreturnsinglestringvalueofXPathexpression?(1个回答)关闭5年前。我有一组xml文件,其中包含由元素包围的文本字符串,然后由其他元素分割。例如,rhinoceros包含一个单词,该单词中的字符集出于各种原因被标记。但是,我希望能够编写一个检索整个单词的查询,即中的文本字符串。没有空格,也没有任何痕迹表明某些文本根本来自后代元素(在示例中,结果应该是“rhinoceros”)。我该怎么做?我已经研究了多种检索后代文本节点的方法,但这些最终都会导致一些所需的单词被省略,或者充其量(“//w/descendant-

c# - 读取 xml 子树和后代 C#

我有一个包含多个子树的XML文件,这些子树中也可以包含子树。像这样:..........(“..”是子树中的元素)。我如何读取每个子树然后读取它的所有元素(如果这个子树包含一个子树我想单独读取它和他的所有元素)? 最佳答案 XmlReader支持为此目的读取子树;如果您愿意,可以使用子树阅读器作为其他模型(XmlDocument、XElement等)的输入:using(varreader=XmlReader.Create(source)){reader.MoveToContent();reader.ReadStartElement(

xml - xsl 只递归复制一些元素并删除一些后代

我要转型进入用简单的英语来说,我想递归地复制颜色元素,包括文本,忽略XML文档的其余部分并丢弃绿色元素。上面的示例有一些解决方案,但如果XML稍有不同,就会失败。例如,在color元素下添加nest元素,或者在colorother元素/strong>元素,或在color元素范围内的文本(GOODTEXT)和另一个在其范围之外的文本(BADTEXT)。GOODTEXTBADTEXTBADTEXTTWO我最感兴趣的是通用的解决方案,而不是针对此处介绍的示例进行定制。 最佳答案 这个新的转换足够通用以复制颜色元素无论它们的父元素是什么。我

xml - 在 XQuery 中,如何根据给定谓词递归过滤后代?

鉴于此XML片段:运行查询$root//A会得到A及其所有后代。到目前为止一切顺利。我想要的是通过谓词过滤A的后代,比如[@visible=true]。我希望查询返回相反,即。过滤掉所有与谓词不匹配(或其父元素不匹配)的子元素。想像一个用XML描述的GUI系统,在呈现它时我会在其中过滤可见元素的树。我认为这对于XSLT来说是微不足道的,但我一定会使用XQuery。 最佳答案 它也可以在XQuery中轻松完成。只要有一个函数递归地重写合格的节点,同时应用过滤器:declarefunctionlocal:rewrite($nodeasn

xml - XSLT 1.0 将特定的后代/子注释重新排列到与父/祖先相同的级别

我正在寻找一种通用方法来将某些特定后代重新排列到其祖先节点的级别。重要的是:我需要一个适用于p和x的通用模板。节点abDEEPSPACENODE的顺序(从上到下)尽量不要改变。我的输入:1234567891011121314我想要的输出:1234567891011121314感谢您的帮助。我尝试自己解决,但没有成功。 最佳答案 这是一个更通用的解决方案,可以在不对XML文档施加任何限制的情况下产生所需的结果——我们不假设任何预定义的嵌套级别,或者名为b存在:应用于提供的XML文档时:1234567891011121314产生了想要的

xml - xslt 使用分隔符连接一个类型的所有后代

我正在使用XSL将HTML文档转换为XML。如何用分隔符连接特定类型的所有后代节点中的文本?例如,我有一个表节点,它有几个td节点作为后代,如何组合所有这些td元素中的文本?对于下面的输入并使用','作为分隔符,输出应为'value1,value2,value3,value4'value1value2value3value4 最佳答案 尝试:或:string-join()在AVT's中特别有用. 关于xml-xslt使用分隔符连接一个类型的所有后代,我们在StackOverflow上找到

c# Linq for XML : tag. 后代不允许询问所有后代

我是这个网站的新手,这是我的第一个问题。我阅读了文档,但如果我违反了任何行为准则,我提前表示歉意。这是我的问题:我在流中有一个XML文件。我的目标是获取属性“名称”、“类型”和一个或多个键(由于显而易见的原因,它们已被更改)。BBBBB-QW36D-DPT6T-BBBB-ZZZZZZZZZZ-6GBG7-ZZZZZ-8JG23-FM47HFEFEF-FVD7K-EEEEF-BEBEB-VMHX7EEZZE-GYB6P-ZZZEE-R72PQ-EEEEZ我创建了一个类来保存数据publicclassMsProduct{publicstringName{get;set;}publicstr