草庐IT

XPath_Query

全部标签

xml - PowerShell select-xml xpath 似乎不起作用

我正在尝试使用select-xml从SharePoint解决方案中找出一些东西。我有一个包含许多功能的解决方案目录,而不是打开每个feature.xml并手动选择功能名称并将它们放在列表中,我希望使用powershell和select-xml。我的尝试是这样的:ls-recurse-filterfeature.xml|select-xml"/Feature"我一无所获,所以我尝试了这个:ls-recurse-filterfeature.xml|select-xml"//*"这似乎做了它应该做的事情。我得到了解决方案中所有feature.xml文件中每个XML节点的列表。我尝试了像“//

ruby - 用于深层嵌套元素的 XPath?

我正在使用Nokogiri。假设我有一个深度嵌套的路径://h1/h2/h3/h4/h5我想我可以使用以下路径://h1/*/*/*/h5有什么方法可以避免使用多个星号?像//h1/.../h5这样的东西?我不想一直计算嵌套的层次。 最佳答案 对于从h1派生的所有h5元素,使用://h1//h5或者您可能喜欢更简单的css样式:h1h5 关于ruby-用于深层嵌套元素的XPath?,我们在StackOverflow上找到一个类似的问题: https://sta

c# - XML namespace 和 XPath

我有一个应用程序必须根据XPath加载XML文档和输出节点。假设我从这样的文档开始:...[manynodeshere]...text...[manynodeshere]...text...[manynodeshere]...使用XPath//bbb到目前为止一切都很好。并选doc.SelectNodes("//bbb");返回所需节点的列表。然后有人上传了一个带有一个节点的文档,如和根标记中的额外namespace,一切都会中断。为什么?//bbb不在乎myfancynamespace,理论上它甚至应该与//myfancynamespace:foo一起使用,因为没有歧义,但表达式返回

ruby - Nokogiri 和 XPath 帮助

不可否认,我是一个Nokogiri新手,我一定错过了一些东西......我只是想从这个XML中打印author>name节点:MattDarbyTitle我正在尝试使用它,但它没有打印任何内容。看似没有节点(甚至'*')不返回任何内容。Nokogiri::XML(@xml_string).xpath("//author/name").eachdo|node|putsnodeend 最佳答案 Alejandro已经回答了这个inhiscomment(+1)但我也添加了这个答案,因为他遗漏了Nokogiri代码。使用带有XPath的No

xml - 如何使用 XPath 在 XML 文档中选择多组属性?

我在构造单个XPath语句以返回两组不同的属性时遇到问题。例如采用以下XML文档:如果我使用以下XPath语句://@alpha它产生以下属性集:alpha="a1"alpha="a2"alpha="a3"我使用什么语句来生成以下属性集:alpha="a1"alpha="a2"alpha="a3"beta="b1"beta="b2"beta="b3" 最佳答案 通过在XPath表达式中使用|运算符,您可以选择多个路径://@alpha|//@beta 关于xml-如何使用XPath在XM

xml - 如何在巨大的 XML 文件中进行命令行 XPath 查询?

我有一组XML文件,其中一些文件非常大(多达约5000万个元素节点)。我正在使用xmllint来验证这些文件,由于流式API,即使对于大型文件也能很好地工作。xmllint--loaddtd--stream--valid/path/to/huge.xml我最近了解到xmllint还可以进行命令行XPath查询,非常方便。xmllint--loaddtd--xpath'/root/a/b/c/text()'/path/to/small.xml但是,这些XPath查询不适用于巨大的XML文件。一段时间后,我刚刚收到一条“被杀死”的消息。我尝试启用流式API,但这只会导致根本没有输出。xml

c# - 如何使用 Xpath 在 C# 中读取 XML

我有这个XML2/28/20125:28:05PMS200N82E16834230265X54C-NS92truenewegg.com439.990.00USD我如何阅读节点使用XPath?上述XML的XNamespace是什么? 最佳答案 ManipulateXMLdatawithXPathandXmlDocument(C#)或更好用LINQtoXML因为您使用的是.net4.0,所以无需学习XPath来遍历xml树。不确定xpath表达式,但您可以这样编码stringfileName="data.xml";XPathDocume

xml - XPath 兄弟提取

示例文档:July12TimJonJuly13JamesEricJerrySusieJuly14KamiDarryl我想要做的是抓取7月13日发布的所有p节点。请注意,它们是h4的兄弟节点,而不是子节点。所以在这个例子中,我想要获取包含以下名称的p节点:James、Eric、Jerry和Susie。我接近以下内容,但它选择了7月13日h4节点之后的所有p节点,因为它们都是兄弟节点。换句话说,它没有停止条件。//h4[string()='July13']/following-sibling::p 最佳答案 使用这个XPath://p[

xml - 如何通过 XPath 对值进行排序

这些是我的XML。Title..221/01/2011Title..121/01/2011Title..222/01/2011逻辑是这样的:元素节点应根据节点val和日期进行排序。FirstOrder必须基于val并在此具有val值的节点序列中。它们应该按日期列出。有谁知道如何通过XPath获取排序的XML节点列表?有什么想法吗? 最佳答案 您可以使用xsl:sort对匹配的节点进行排序。这将允许您按val元素排序。但是,XPath1.0没有日期数据类型。这个问题的合理解决方案是将您的日期拆分为年、月和日部分,然后分别进行排序。以下

xml - 如何在 xmlstarlet 中声明 XPath 命名空间?

我是xmlstarlet的新手,所以希望这个答案很简单。我正在编写一个脚本来从命令行修改InkscapeSVG文件。我选择了工具xmlstarlet。在测试文件上测试命令语法后,我在实际SVG文件上遇到了问题。我认为命名空间的使用让我失望。示例文件:我想将Gradient6204更改为Gradient9999。我写了这个命令,它不起作用(只返回原始文件)。xmlstarleted-u"/svg/defs/linearGradient[@id='linearGradient6204']/@id"-v'linearGradient9999'text.txt我也再次尝试,使用-N添加命名空间