java如何将部分XML复制到新的XML文件?
有人知道如何将XML文件的一部分复制到新的XML文件中吗?我有这个:
<?xml version="1.0"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 401" height="401px" style="stroke: #818181;stroke-width: 1;stroke-linecap: round;stroke-opacity: 0.25;fill: #f4f3f0;" contentStyleType="text/css" zoomAndPan="magnify" preserveAspectRatio="xMidYMid meet" width="500px" enable_background="new 0 0 500 401" contentScriptType="application/ecmascript" version="1.1"><defs></defs><metadata><views><view w="500" zoomAndPan="magnify" preserveAspectRatio="xMidYMid meet" padding="0" h="401"><proj id="laea" lon0="16.693" lat0="45.723"></proj><bbox w="51.2" y="989.82" h="50.8" x="972.4"></bbox><llbbox lon1="180" lon0="-180" lat0="-90" lat1="90"></llbbox></view></views></metadata>
<g>
<path data-name="" d=" " data-fips=""></path>
<path data-name="" d="" data-fips=""></path>
</g>
</svg>
我想复制g标签中除了数据以外的所有内容,我该怎么做?谁能给我看看密码吗
# 1 楼答案
您可以通过两种方式实现这一点
1。XSLT:
在这里,您可以消除每个节点的节点
<g>
thru2。FileInputStream:
在检查行包含字符串
<g>
并跳过它之前,逐行读取文件并写入新文件# 2 楼答案
您可能正在寻找XSLT。它是一个java技术/库,允许您定义从一个xml结构到另一个xml结构的转换。它支持可重复的批处理操作和强大的动态语言,可以设置变量、使用条件语言等。您可以从命令行或其他应用程序内部运行它
http://en.wikipedia.org/wiki/XSLT
# 3 楼答案
虽然可以使用XSLT实现这一点,但下面是使用标准JavaAPI(使用DOM)实现这一点的方法
这样做可以避免正则表达式的脆弱性(这在这种特定情况下适用,但如果您需要开始变得更高级,它们将很快在XML中失控),并减少您对输入格式的假设
# 4 楼答案
在您的情况下,简单的正则表达式替换就足够了:
除非你在某处使用CDATA