我是xml的新手。我必须在不使用解析器的情况下读取xml文件的所有元素。 请帮帮我。我可以使用正则表达式的字符串函数。但我不熟悉它们。所以请帮我给我一个代码来读取至少2个xml元素,一个是root,另一个是child。
答案 0 :(得分:1)
您可以使用标准java.io
包,特别是java.io.FileReader
和java.io.BufferedReader
。
这将使您能够阅读xml文件并将内容作为标准java.lang.String
。
获得String后,您可以使用正则表达式过滤掉xml类型数据。
这绝对不是编写xml解析器的最有效方法,并不能完全涵盖标准xml解析器将提供的所有解析功能。
答案 1 :(得分:1)
假设您的XML有效且格式正确,并且无法嵌套相同名称的标记,您可以使用以下正则表达式匹配整个标记,例如对于名为child
的标记:< / p>
<\s*child(?:(?!<\s*/\s*child).)+<\s*/\s*child\s*>
请注意,要在Java字符串中使用它,您必须将所有反斜杠加倍;并且您希望使用Pattern.DOTALL
选项编译正则表达式。
说明(为清晰起见,删除了可选的空格标记):
<child # match opening tag
(?: # then match...
(?!</child) # as long as it's not at the start of the closing tag:
. # any character
)+ # as many times as possible
</child> # then match the closing tag