我在Fantom的XParser类中遇到了一些问题,我试图获取XML中标记之间的数据。有一种能够获得数据类型但却无法获得实际数据的数据。谢谢!
答案 0 :(得分:0)
您尝试实现的内容的示例将非常有用(例如显示您要隔离的数据的XML片段),因为问题不太明确。
默认意味着在Fantom中选择XML非常基本,并且涉及遍历直接子节点的列表。具体请参阅XElem.elems()和XElem.elem(Str name)。
示例用法如下:
using xml
class Example {
Void main() {
root := XParser("<root>
<thingy>
<wotsit>My Text</wotsit>
</thingy>
</root>".in).parseDoc.root
// find by traversing element lists
wotsit := root.elems[0].elems[0]
echo(wotsit.writeToStr) // --> <wotsit>My Text</wotsit>
// find by element name
wotsit = root.elem("thingy").elem("wotsit")
echo(wotsit.writeToStr) // --> <wotsit>My Text</wotsit>
// get wotsit text
echo(wotsit.text.val) // --> My Text
}
}
如果您熟悉使用CSS选择器查找XML,那么您可以尝试从Alien-Factory尝试Sizzle:
using xml
using afSizzle
class Example {
Void main() {
sizzleDoc := SizzleDoc("<root><thingy><wotsit/></thingy></root>")
// find by CSS selector
wotsit = sizzleDoc.select("wotsit").first
echo(wotsit.writeToStr) // --> <wotsit>My Text</wotsit>
// get wotsit text
echo(wotsit.text.val) // --> My Text
}
}