简体   繁体   English

为什么在Scala中解析XML时为什么会得到额外的“节点”?

[英]Why do I get extra “nodes” when parsing XML in Scala?

Here is the XML that's returned by my web server 这是我的Web服务器返回的XML

<root>
    <item attr="test1">
    <item attr="test2">
</root>

Here is the Scala Code 这是斯卡拉代码

var url = "http://mywebserver/my.xml"
val xml = XML.load(url)
logger.info(s"The XML is: $xml")
var items = xml.child
logger.info(s"items: $items")
items.foreach(item => {
  logger.info(item.toString())
  val attr = item.attribute("attr")
  logger.info(s"Attribute: $attr")
})

The XML logged is the copy of the XML returned by the web server However the foreach loop prints 记录的XML是Web服务器返回的XML的副本,但是将打印foreach循环

INFO myclassName - 
INFO myclassName - Attribute: None
INFO myclassName - <item attr="test1">
INFO myclassName - Attribute: test1
INFO myclassName - 
INFO myclassName - Attribute: None
INFO myclassName - <item attr="test2">
INFO myclassName - Attribute: test2

Where are the extra blank nodes coming from? 多余的空白节点从哪里来? Am I missing any configuration? 我是否缺少任何配置?

<foo><bar></bar></foo> and <foo> <bar> </bar> </foo> are different XML. <foo><bar></bar></foo><foo> <bar> </bar> </foo>是不同的XML。 In the XML spec, the characters between tags--including whitespace--form a "text element" child of the enclosing tag, and Scala's XML parsing is simply honoring the spec by reading your whitespace as text elements. 在XML规范中,标签之间的字符(包括空格)形成了封闭标签的“文本元素”子元素,而Scala的XML解析只是通过将空白作为文本元素读取来兑现规范。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 解析大文件时,为什么Scala的组合子解析速度慢? 我能做什么? - Why is Scala's combinator parsing slow when parsing large files? What can I do? 为什么Scala地图在使用foreach迭代时会打印一个额外的值? - Why do Scala maps print an extra value when iterating with foreach? 斯卡拉(Scala):为什么我必须在这里加括号? - Scala: why do I have to put extra parenthesis here? Scala:获取子节点的XML计数 - Scala: get child nodes count in XML 为什么我在 Scala 中收到 LocalDateTime 错误? - Why do I get LocalDateTime error in Scala? 使用Scala解析JSON上的节点 - - Parsing nodes on JSON with Scala - Scala:当我使用“Option”时,为什么会出现类型不匹配错误? - Scala: Why do I get a type mismatch error when I use “Option”? 如何访问RDD [Iterator [scala.xml.Node]]中的各个节点? - How do I access individual nodes in an RDD[Iterator[scala.xml.Node]]? 为什么在scala中定义类型时会得到“期望的类或对象定义”? - Why do I get “expected class or object definition” when defining a type in scala? 将以下内容从Java转换为Scala时,为什么会收到“将始终产生true”的警告? - Why do I get a “will always yield true” warning when translating the following from Java to Scala?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM