Ajax 从XML中的类别获取产品
我有一个使用Ajax读取的XML文件:Ajax 从XML中的类别获取产品,ajax,xml,Ajax,Xml,我有一个使用Ajax读取的XML文件: <prod id="6786345"> <pId>0436</pId> <text> <name>Blue widget</name> <desc>Stunning blue widget</desc> </text> <cat> <myCatId>
<prod id="6786345">
<pId>0436</pId>
<text>
<name>Blue widget</name>
<desc>Stunning blue widget</desc>
</text>
<cat>
<myCatId>252</myCatId>
<myCat>Widgets</myCat>
</cat>
<pId>0437</pId>
<text>
<name>Red widget</name>
<desc>Amazing red widget</desc>
</text>
<cat>
<myCatId>252</myCatId>
<myCat>Widgets</myCat>
</cat>
<pId>0438</pId>
<text>
<name>Cheeseburger</name>
<desc>Healthy delight</desc>
</text>
<cat>
<myCatId>253</myCatId>
<myCat>Burgers</myCat>
</cat>
</prod>
如何仅返回类别252中项目的文本名称?您必须找到值为
252
的myCatId
节点,然后向后导航。在XPath中,这将是
../preceding-sibling::text/name`
考虑到奇怪的XML布局,如果前面的
和
节点之间没有
节点,这当然会失败(返回错误的值)
编辑:我对jQuery没有太多的经验,但是从文档的快速阅读来看,我认为它应该是这样的:
var title = $(this).parent().prev("text").children("name").text();
但请记住,这取决于一个不完整的XML结构,当它应该使用层次结构时,它使用邻接关系来关联实体。如果您能修复XML,您的境况会好得多。XML真的是这样构造的吗?
和
标记是否应该在
标记中?@JimGarrison是的,这就是它的结构。好的,谢谢。我是这方面的绝对初学者,那么我该如何将其添加到代码示例中呢?我已经在答案中添加了我的最佳猜测。
var title = $(this).parent().prev("text").children("name").text();