XML Parsing - XPath 表达式试图访问第二个 for 循环内的 xml 元素 [重复]

Posted

技术标签:

【中文标题】XML Parsing - XPath 表达式试图访问第二个 for 循环内的 xml 元素 [重复]【英文标题】:XML Parsing - XPath expression trying to access xml elements inside second for loop [duplicate] 【发布时间】:2016-03-11 08:04:31 【问题描述】:

我有一个 XML 文件,我试图将其解析并存储为对象,以便我可以持久保存它们。

<key>Playlists</key>
<array>
    <dict>
        <key>Name</key><string>Library</string>
        <key>Master</key><true/>
        <key>Playlist ID</key><integer>1806</integer>
        <key>Playlist Persistent ID</key><string>29E12A03204E0722</string>
        <key>Visible</key><false/>
        <key>All Items</key><true/>
        <key>Playlist Items</key>
        <array>
            <dict>
                <key>Track ID</key><integer>1234</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1282</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1694</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1558</integer>
            </dict>
       </array>
    </dict>
    <dict>
        <key>Name</key><string>Music</string>
        <key>Playlist ID</key><integer>2687</integer>
        <key>Playlist Persistent ID</key><string>29E12A03204E072C</string>
        <key>Distinguished Kind</key><integer>4</integer>
        <key>Music</key><true/>
        <key>All Items</key><true/>
        <key>Playlist Items</key>
        <array>
            <dict>
                <key>Track ID</key><integer>1234</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1282</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1694</integer>
            </dict>
            <dict>
                <key>Track ID</key><integer>1558</integer>
            </dict>
       </array>
    </dict>

我无法访问第二个数组。它不断显示每个​​播放列表中第一个数组中的曲目 ID。

它正在为我尝试显示的所有播放列表执行此操作。

谁能帮我解决这个问题?

【问题讨论】:

与相同输入相关的问题:***.com/questions/34106517/… 【参考方案1】:

改变

NodeList tList = (NodeList)x.evaluate("/plist/dict/array/dict/array/dict", root, XPathConstants.NODESET);

NodeList tList = (NodeList)x.evaluate("array/dict", dict, XPathConstants.NODESET);

【讨论】:

这似乎不起作用。仍然在每个播放列表中显示相同的数字。

以上是关于XML Parsing - XPath 表达式试图访问第二个 for 循环内的 xml 元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php 使用XPath在PHP中使用简单的运动结果解析器。有关更多信息,请访问http://martinsikora.com/parsing-html-pages-using-xpath

php 使用XPath在PHP中使用简单的运动结果解析器。有关更多信息,请访问http://martinsikora.com/parsing-html-pages-using-xpath

Xpath语法

使用 Xpath 表达式和 jaxb 解组 XML

来自带有命名空间前缀的 xml 的 xpath 表达式

如何使用 Xpath 表达式仅删除 XML 中的空节点?