1

我有以下 XML 语法:

<Properties>
    <Property>
        <Name>Author</Name>
        <Type>Object</Type>
        <Value>somevalue</Value>
    </Property>
    <Property>
        <Name>Title</Name>
        <Type>String</Type>
        <Value>Word files</Value>
    </Property>
    <Property>
        <Name>Path</Name>
        <Type>String</Type>
        <Value>/path/subfolder/directory/somevalue.doc</Value>
    </Property>
    <Property>
        <Name>Rank</Name>
        <Type>Int64</Type>
        <Value>804</Value>
    </Property>
    <Property>
        <Name>Size</Name>
        <Type>Int64</Type>
        <Value>0</Value>
    </Property>
</Properties>

基本上这是 1 个这样的属性集,我还有大约 10 个。我需要访问 Value 节点中的文本,以及相对于名称标签 [Author,Title,Path,Rank,Size] 中包含的 text()。本质上,我的 XPathQueries 返回一组标记文本。

我的处理方法是这样的:

XPathQuery("//属性/名称//*text()='Author']/Type/Value");

但那是行不通的人!现在我离把头发撕开还有 20 分钟的路程:(

作为记录,如果重要的话,我正在使用 java Xpath 库,因为我正在用 Java 编程。

4

3 回答 3

1
Properties/Property [Name = 'Author']/Value
于 2012-09-21T02:50:24.627 回答
0

我不是 100% 确定你想要做什么。如果您想要的是<Value>标签中具有给定文本的属性的文本<Name>,那么我相信这应该有效(对于Author):

//Property[./Name[contains(.,'Author')]]/Value/text()
#=> "somevalue"

虽然我使用的是 nokogiri/ruby 而不是 Java,所以我无法确认这是否适用于您的设置。

于 2012-09-21T02:53:02.603 回答
0

使用

/*/Property[Name = 'Author']/Value
于 2012-09-22T03:38:20.177 回答