`
wentise
  • 浏览: 23067 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

split xml

    博客分类:
  • java
 
阅读更多
before:
<?xml version="1.0" encoding="UTF-8"?>
<DOC>

    <AUTHOR>
        <FIRSTNAME>Firstname</FIRSTNAME> 
        <LASTNAME>Lastname</LASTNAME>
    </AUTHOR>
    <AUTHOR>
        <FIRSTNAME>Firstname1</FIRSTNAME> 
        <LASTNAME>Lastname1</LASTNAME>
    </AUTHOR>
    <PARAGRAPH>
        <LINE N="1">First line.</LINE> 
        <LINE N="2">Second line.</LINE> 
    </PARAGRAPH>

    <PARAGRAPH>
        <LINE N="3">Third line.</LINE> 
        <LINE N="4">Fourth line.</LINE>        
    </PARAGRAPH>
</DOC>



import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;

public class SplitXML {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		List<String> data = FileUtils.readLines(new File("d:\\test.xml"));
		List<String> authorList = new ArrayList<String>();
		List<String> paragraphList = new ArrayList<String>();
		String authorS = "<AUTHOR";
		String authorE = "</AUTHOR>";
		String paragraphS = "<PARAGRAPH";
		String paragraphE = "</PARAGRAPH>";
		boolean isauthorS = false;
		boolean isparagraphS = false;
		
		boolean isauthorE = false;
		boolean isparagraphE = false;
		for (String line : data) {
			boolean ishit = false;
		System.out.println(line);

			if (line.contains(authorS)) {
				isauthorS = true;
				
			} else if (line.contains(authorE)) {
				isauthorE = true;
			} else if (line.contains(paragraphS)) {
				isparagraphS = true;
			} else if (line.contains(paragraphE)) {
				isparagraphE = true;
			}
			if(isauthorS||isauthorE){
				authorList.add(line);
				if(isauthorE){
					isauthorS =false;
					isauthorE =false;
					ishit= true;
				}
			}else if(isparagraphS||isparagraphE){
				paragraphList.add(line);
				if(isparagraphE){
					isparagraphE =false;
					isparagraphS =false;
					ishit= true;
				}
			}
			if(!isauthorS&&!isparagraphS&&!isauthorE&&!isparagraphE&&!ishit){
					authorList.add(line);
					paragraphList.add(line);
				
			}
		}
		FileUtils.writeLines(new File("d:/paragraphList.txt"), paragraphList);
		FileUtils.writeLines(new File("d:/authorList.txt"), authorList);
	}

}


after
<?xml version="1.0" encoding="UTF-8"?>
<DOC>

    <PARAGRAPH>
        <LINE N="1">First line.</LINE> 
        <LINE N="2">Second line.</LINE> 
    </PARAGRAPH>

    <PARAGRAPH>
        <LINE N="3">Third line.</LINE> 
        <LINE N="4">Fourth line.</LINE>        
    </PARAGRAPH>
</DOC>


<?xml version="1.0" encoding="UTF-8"?>
<DOC>

    <AUTHOR>
        <FIRSTNAME>Firstname</FIRSTNAME> 
        <LASTNAME>Lastname</LASTNAME>
    </AUTHOR>
    <AUTHOR>
        <FIRSTNAME>Firstname1</FIRSTNAME> 
        <LASTNAME>Lastname1</LASTNAME>
    </AUTHOR>

</DOC>

分享到:
评论

相关推荐

    XML Publisher报表模板rtf文件

    XML Publisher是Oracle提供的一款强大的报表和文档生成工具,它能够帮助用户从各种数据源(如数据库、XML文件等)创建专业级别的报告。在本话题中,我们主要关注的是"XML Publisher报表模板rtf文件",这是一个关键...

    SplitButton 分裂按钮 WPF

    ```xml &lt;controls:SplitButton x:Name="MySplitButton" Content="点击我"&gt; &lt;controls:SplitButton.DropDownItems&gt; 选项1"/&gt; 选项2"/&gt; 选项3"/&gt; &lt;/controls:SplitButton.DropDownItems&gt; &lt;/controls:Split...

    Qt读写Xml文件,QTreeWidget显示Xml和导出Xml文件

    QStringList parts = item-&gt;text(i).split(":"); attr = doc.createAttribute(parts[0]); attr.setValue(parts[1]); element.setAttributeNode(attr); } } for (int i = 0; i &lt; item-&gt;childCount(); ++i) ...

    wpf 中炫酷的分裂按钮SplitButton Demo

    在Windows Presentation Foundation(WPF)中,SplitButton是一种特殊的按钮控件,它结合了普通按钮的功能和下拉菜单的功能。这个“wpf 中炫酷的分裂按钮SplitButton Demo”示例将向我们展示如何在WPF应用中创建并...

    vb读取xml文件节点值操作实例

    Dim keyValue() As String = currentNode.Split("=") nodeValues.Add(keyValue(0).Trim(), keyValue(1).Replace("""", "")) End If ElseIf line.StartsWith(") And line.EndsWith("&gt;") Then currentNode = "" ...

    sql-split2.doc

    描述中没有提供具体信息,但从标签"sql-split2.doc"来看,我们可以推测这可能是一个与SQL相关的话题,尤其是关于在SQL Server 2000中使用OpenXML函数来处理XML数据的方法。 在提供的内容中,我们看到了一个名为`...

    SDLXLIFF file Split and Merge

    该文件格式是XML的一种变体,主要用于存储翻译项目中的源文本、目标文本以及相关的元数据。在处理大型翻译项目时,为了便于管理,往往需要对SDLXLIFF文件进行拆分和合并操作。 "SplitSDLXLIFF.msi" 是一个安装程序...

    xml加载图片 相册

    trace("显示图片描述:", image.name, "描述:", image.name.split(".")[0]); } ``` 以上代码示例演示了如何使用AS3从XML文件加载图片和描述,并构建一个基本的相册。在实际项目中,你可能还需要考虑错误处理、图片...

    web的xml技术

    - **属性和方法**:如`nodeValue`、`splitText()`等。 #### XMLDOM-CDATASection对象 - **表示CDATA段**。 - **属性和方法**:如`appendData()`、`deleteData()`等。 #### XMLDOM-Comment对象 - **表示注释节点**...

    python解析xml文件

    可以使用`split()`方法分割标签,或者使用`qname()`方法解析命名空间。 7. **XML序列化与写入** 解析后的数据可以通过`ElementTree`的`write()`方法写回XML文件,或者使用`tostring()`方法转换为字符串形式。 ...

    SplitButton

    ```xml xmlns:controls="clr-namespace:Microsoft.Windows.Controls;assembly=RibbonControlsLibrary"&gt; ... &lt;controls:SplitButton Content="Click me" Command="{Binding MyCommand}"&gt; &lt;controls:SplitButton....

    SQL server中实现类似split功能的函数

    在SQL Server中,"split功能"通常指的是将一个字符串拆分成多个部分,这在处理以特定分隔符分隔的数据时非常有用。SQL Server并没有内置的`SPLIT`函数,但可以通过其他方式来实现这个功能。下面我们将详细介绍如何在...

    ip地址转xml文件

    ip_list = line.strip().split() for ip in ip_list: ip_elem = ET.SubElement(root, 'ip') ip_elem.text = ip tree = ET.ElementTree(root) tree.write(xml_file) # 调用函数 txt_to_xml('ip_addresses.txt...

    用C#把文件转换为XML

    XML(Extensible Markup Language)则是一种用于存储和传输数据的通用格式,具有良好的可读性和结构化特性。本篇文章将深入探讨如何利用C#来实现文件向XML的转换,从而帮助开发者更好地理解和应用这一技术。 首先,...

    c#将csv转xml.rar

    源代码可能包括了读取CSV文件(使用`System.IO.File`类或`StreamReader`)、解析数据(可能使用`string.Split`方法)、构建XML结构(通过`System.Xml.Linq.XDocument`类)以及写入XML文件(使用`XDocument.Save`方法...

    C# WPF实现SplitContainer上下左右隐藏与显示.rar

    ```xml *"/&gt; *"/&gt; , Converter={StaticResource BoolToVisConverter}}"&gt; &lt;!-- Top panel content here --&gt; , Converter={StaticResource BoolToVisConverter}}"&gt; &lt;!-- Left panel content ...

    C# WPF实现SplitContainer上下左右隐藏与显示

    在C# WPF(Windows Presentation Foundation)开发中,SplitContainer控件是一个强大的工具,它允许用户动态地调整窗口中的两个或多个区域的大小。SplitContainer控件通常用于创建可自定义布局的应用程序,用户可以...

    XSL Split

    【XSL Split】是一种基于XSL(eXtensible Stylesheet Language)技术的工具,用于将XML文档按照特定规则拆分成多个小文件。在IT领域,处理大量数据时,拆分大文件是常见的需求,XSL Split就是为了解决这个问题而设计...

    ASP.NET处理XML

    例如,`String.Split` 和 `String.Replace` 可以用于预处理XML字符串,而 `Regex` 类可以用于更复杂的模式匹配。 6. **示例文件分析**: 在提供的文件列表中,`FriendData.xml` 很可能是包含朋友数据的XML文件。...

Global site tag (gtag.js) - Google Analytics