Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中使用DOM解析器解析xml文件时的子追加问题_Android_Xml_Parsing_Dom_Docx - Fatal编程技术网

Android中使用DOM解析器解析xml文件时的子追加问题

Android中使用DOM解析器解析xml文件时的子追加问题,android,xml,parsing,dom,docx,Android,Xml,Parsing,Dom,Docx,我试图在android中解析定义的docx文件,将它们放在文本字段、图像视图和表布局中。 但我被困在了儿童游戏上 文本文件由一个已知样式定义和分隔,该样式定义了主题的标题。 但是所有的主题都没有定义样式,我试图通过计算两个标题之间的内容并附加到正确的对象上来获得它们 这是我的代码,但元素附加在同一个对象上 这是目标代码+geters和seters public class ObjectForPassingElements { Element name; Element cont

我试图在android中解析定义的docx文件,将它们放在文本字段、图像视图和表布局中。 但我被困在了儿童游戏上

文本文件由一个已知样式定义和分隔,该样式定义了主题的标题。 但是所有的主题都没有定义样式,我试图通过计算两个标题之间的内容并附加到正确的对象上来获得它们

这是我的代码,但元素附加在同一个对象上

这是目标代码+geters和seters

public class ObjectForPassingElements {

    Element name;
    Element content;

    int position;
    int order;
    int parrent;
    int id;
}


public List<ObjectForPassingElements> getElementByStyle(Document d,NodeList paragpraphList,String startTag,String tagname,String atribute,String atributeValue)
{

        Element paragraphElement;

        Element empty = d.createElement(startTag);
        Element elementWithTagName;
        List<ObjectForPassingElements> objListWithOutContent = new ArrayList<ObjectForPassingElements>();
        int start=0;
        int end = 0;
        int order = 0;

            for(int i=0;i<paragpraphList.getLength();i++)
            {

                paragraphElement = (Element) paragpraphList.item(i);
                //m.compareDocumentPosition(other);
                NodeList titleStyle = paragraphElement.getElementsByTagName(tagname);
                ObjectForPassingElements elementWithstyle = new ObjectForPassingElements();
                for(int j=0;j<titleStyle.getLength();j++)
                {
                    elementWithTagName = (Element) titleStyle.item(j);

                    if(elementWithTagName.getAttribute(atribute).equals(atributeValue))
                    {

                        elementWithstyle.setContent(empty);
                        elementWithstyle.setName((Element) paragpraphList.item(i));
                        elementWithstyle.setPosition(i);
                        elementWithstyle.setOrder(order);
                        objListWithOutContent.add(elementWithstyle);
                        order++;
                        //
                    }
                }
            }

            Element n;
            Node childBlankNode1 = d.createTextNode("\n\n");

        for(int i =0;i<paragpraphList.getLength();i++)
        {
            Log.d("in","inlist size"+objListWithOutContent.size()+"");
            for(int k=0;k<objListWithOutContent.size();k++)
            {
                start = objListWithOutContent.get(k).getPosition();

                if(k!=objListWithOutContent.size()-1)
                    end=objListWithOutContent.get(k+1).getPosition();
                else
                    end=paragpraphList.getLength()-1;

                if(i>=start&&i<end)
                {
                    n =(Element) paragpraphList.item(i);
                    objListWithOutContent.get(k).getContent().appendChild(n);
                }
            }
        }
        //

        for(ObjectForPassingElements obj : objListWithOutContent)
        {
            Log.d("fin",obj.getPosition()+" --- ///name "+obj.getName().getTextContent()+" name/// ---- ///content"+obj.getContent().getTextContent()+"///content  ");
        }

        return objListWithOutContent;
    }
公共类ObjectForPassingElements{
元素名称;
元素含量;
内部位置;
整数阶;
智力障碍;
int-id;
}
公共列表getElementByStyle(文档d、节点列表ParaphList、字符串startTag、字符串标记名、字符串atribute、字符串atributeValue)
{
元素段落元素;
Element empty=d.createElement(startTag);
元素elementWithTagName;
List objListWithOutContent=new ArrayList();
int start=0;
int end=0;
整数阶=0;

对于(int i=0;i)您是否找到了问题的答案?您是否找到了问题的答案?
    <w:p>
<w:pStyle w:val="Protocols"/></w:pPr><w:r w:rsidRPr="00E37EC1"><w:t>HEADER 1</w:t></w:r>
</w:p>
<w:p><w:t>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam id eros id nulla ultrices condimentum. Phasellus blandit pellentesque arcu, et placerat diam posuere id. Nunc feugiat, dui at pretium ultricies, enim mi placerat nibh, at bibendum urna massa id ipsum</w:t></w:p>
<w:p><w:t>Fusce dignissim feugiat sapien, a consectetur diam vestibulum quis. Pellentesque aliquam scelerisque erat, at auctor sem commodo sit amet. Cras eget enim sapien,</w:t></w:p>
<w:p><w:t>Aliquam elit leo, pretium ac suscipit rhoncus, eleifend vitae sem. Curabitur mattis euismod quam, vitae convallis elit sodales non.</w:t></w:p>
<w:p><w:t>Curabitur vel risus vitae lacus feugiat gravida in sed lorem. Proin fringilla vehicula nulla a consectetur. In hac habitasse platea dictumst. Proin viverra </w:t></w:p>
<w:p><w:t>Curabitur elementum condimentum enim tempus pharetra. Sed non nisl lectus. Aliquam vitae mi in diam vehicula aliquam a vitae tortor.</w:t></w:p>

<w:p>
<w:pStyle w:val="Protocols"/></w:pPr><w:r w:rsidRPr="00E37EC1"><w:t>HEADER 2</w:t></w:r>
</w:p>
<w:p><w:t>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. </w:t></w:p>
<w:p><w:t>Cras aliquam viverra lorem, eget aliquet ipsum malesuada ut</w:t></w:p>
<w:p><w:t>Etiam non est turpis, quis posuere mi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In quis lectus sapien, nec ultricies arcu.</w:t></w:p>
<w:p><w:t>tent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam et tellus at libero dignissim lobortis ut vitae nisl. Mauris sol</w:t></w:p>
<w:p><w:t>etur in, molestie non dolor. Etiam in quam purus.</w:t></w:p>
    public void stripXmlTags(File f) {

    Document d;
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    try {

        DocumentBuilder db = dbf.newDocumentBuilder();

        FileInputStream is = new FileInputStream(f);

        d=db.parse(is);

        NodeList paragrph = d.getElementsByTagName("w:p");

        List<ObjectForPassingElements> protocolsList = new ArrayList<ObjectForPassingElements>();


        protocolsList = getElementByStyle(d,paragrph,"w:p","w:pStyle","w:val","Protocols");