如何使用xpath编辑特定的xml

时间:2018-03-11 22:13:31

标签: java xml xslt xpath jsonpath

我得到了xml,它是使用xslt函数json-to-xml()生成的。我需要使用给定的xpath更新此xml,如结果xml中所示。我需要java或xslt中的解决方案。任何帮助将非常感激。

XML

 <?xml version="1.0" encoding="UTF-8"?>
    <map xmlns="http://www.w3.org/2005/xpath-functions">
        <map key="Response">
            <map key="Headers">
                <string key="server">Lisa</string>
                <string key="Status-Code">200</string>
                <string key="Content-Type">applicaton/json</string>
            </map>
            <map key="Payload">
                <map key="root">
                    <array key="cars">
                        <map>
                            <string key="company">ccc</string>
                            <string key="model">mmm</string>
                        </map>
                        <map>
                            <string key="strength">666</string>
                            <string key="Capacity">333</string>
                        </map>
                    </array>
                    <array key="bikes">
                        <map>
                            <string key="company">abc</string>
                            <string key="model">2018</string>
                        </map>
                    </array>
                </map>
            </map>
        </map>
    </map>

的XPath

/Response/Payload/root/cars[2]/strength=999
/Response/Payload/root/bikes/model=2019
/Response/Headers/server=WebSphere
/Response/Headers/Content-Type=text
/Response/Payload/root/cars[2]/Capacity=555
/Response/Payload/root/cars[1]/model=mmm1
/Response/Payload/root/bikes/company=xyz
/Response/Payload/root/cars[1]/company=ccc1
/Response/Headers/Status-Code=400

更新后的结果XML

<map xmlns="http://www.w3.org/2005/xpath-functions">
    <map key="Response">
        <map key="Headers">
            <string key="server">WebSphere</string>
            <string key="Status-Code">400</string>
            <string key="Content-Type">text</string>
        </map>
        <map key="Payload">
            <map key="root">
                <array key="cars">
                    <map>
                        <string key="company">ccc1</string>
                        <string key="model">mmm1</string>
                    </map>
                    <map>
                        <string key="strength">999</string>
                        <string key="Capacity">555</string>
                    </map>
                </array>
                <array key="bikes">
                    <map>
                        <string key="company">xyz</string>
                        <string key="model">2019</string>
                    </map>
                </array>
            </map>
        </map>
    </map>
</map>

我的尝试
我尝试使用xslt函数将此xml转换回json,然后使用com.jayway.jsonpath Jayway JsonPath库来解析/更改给定xpath上的json值。然后最后使用xslt函数将json再次更改为xml。这对我来说就像魅力一样! 但在使用这个库后,我开始在我的应用程序的其他部分面临问题:(。所有json请求主体的发布请求开始给出400错误。错误是&#34;错误400客户端发送的请求在语法上不正确&# 34;我无法弄清楚这个问题,可能是因为不同的罐头问题。 所以我正在尝试其他一些工作方式。还有像Jayway JsonPath这样的其他图书馆吗?或任何其他解决方案/建议将有助于很多。

1 个答案:

答案 0 :(得分:2)

给定XSLT 3的一种方法可能是将您拥有的路径转换为XSLT 3匹配模板,然后创建可以使用<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:axsl="http://www.w3.org/1999/XSL/Transform-alias" exclude-result-prefixes="xs" version="3.0"> <xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/> <xsl:output method="xml" indent="yes"/> <xsl:param name="paths" as="xs:string">/Response/Payload/root/cars[2]/strength=999 /Response/Payload/root/bikes[1]/model=2019 /Response/Headers/server=WebSphere /Response/Headers/Content-Type=text /Response/Payload/root/cars[2]/Capacity=555 /Response/Payload/root/cars[1]/model=mmm1 /Response/Payload/root/bikes[1]/company=xyz /Response/Payload/root/cars[1]/company=ccc1 /Response/Headers/Status-Code=400</xsl:param> <xsl:param name="path-sequence" as="xs:string*" select="tokenize($paths, '\s+')!normalize-space()"/> <xsl:variable name="stylesheet"> <axsl:stylesheet version="3.0"> <axsl:mode on-no-match="shallow-copy"/> <xsl:for-each select="($path-sequence)"> <xsl:variable name="steps" select="tokenize(., '/')"/> <axsl:template> <xsl:attribute name="match"> <xsl:apply-templates select="tail($steps)" mode="step"/> </xsl:attribute> <axsl:copy> <axsl:copy-of select="@*"/> <xsl:value-of select="substring-after($steps[last()], '=')"/> </axsl:copy> </axsl:template> </xsl:for-each> </axsl:stylesheet> </xsl:variable> <xsl:template match=".[not(contains(., '[')) and not(contains(., '='))]" mode="step"> <xsl:if test="position() gt 1">/</xsl:if> <xsl:sequence select="'*[@key = ''' || . || ''']'"/> </xsl:template> <xsl:template match=".[contains(., '=')]" mode="step"> <xsl:if test="position() gt 1">/</xsl:if> <xsl:sequence select="'*[@key = ''' || substring-before(., '=') || ''']'"/> </xsl:template> <xsl:template match=".[contains(., '[')]" mode="step"> <xsl:if test="position() gt 1">/</xsl:if> <xsl:sequence select="'*[@key = ''' || substring-before(., '[') || ''']/*[' || replace(., '^[^\[]+\[([0-9]+)\]', '$1') || ']'"/> </xsl:template> <xsl:template match="/"> <xsl:sequence select="transform(map { 'source-node' : ., 'stylesheet-node' : $stylesheet })?output"/> </xsl:template> </xsl:stylesheet> 函数(https://www.w3.org/TR/xpath-functions/#func-transform)执行的样式表:

<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.w3.org/2005/xpath-functions">
    <map key="Response">
        <map key="Headers">
            <string key="server">WebSphere</string>
            <string key="Status-Code">400</string>
            <string key="Content-Type">text</string>
        </map>
        <map key="Payload">
            <map key="root">
                <array key="cars">
                    <map>
                        <string key="company">ccc1</string>
                        <string key="model">mmm1</string>
                    </map>
                    <map>
                        <string key="strength">999</string>
                        <string key="Capacity">555</string>
                    </map>
                </array>
                <array key="bikes">
                    <map>
                        <string key="company">xyz</string>
                        <string key="model">2019</string>
                    </map>
                </array>
            </map>
        </map>
    </map>
</map>

https://xsltfiddle.liberty-development.net/jyyiVhv/1,我得到了想要的结果

bikes

这种方式虽然我必须调整路径,包括bikes[1]public class UnsolvedQuestionPaper extends Fragment implements AdapterView.OnItemSelectedListener { @Nullable Spinner s1, s2, s3; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_unsolved_question_paper, container, false); s1 = (Spinner) view.findViewById(R.id.Branch); s2 = (Spinner) view.findViewById(R.id.Sem); s3 = (Spinner) view.findViewById(R.id.Subject); s1.setOnItemSelectedListener(this); s2.setOnItemSelectedListener(this); s3.setOnItemSelectedListener(this); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //you can set the title for your toolbar here for different fragments different titles getActivity().setTitle("Question Paper"); } @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub String sp1 = String.valueOf(s1.getSelectedItem()); String sp2 = String.valueOf(s2.getSelectedItem()); String sp3 = String.valueOf(s3.getSelectedItem()); /* Toast.makeText(getActivity(), sp1, Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), sp2, Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), sp3, Toast.LENGTH_SHORT).show(); */ if (sp1.equals("F.E") && !sp2.contains("SEM 1,SEM 2")) { List<String> list = new ArrayList<String>(); list.add("SEM 1"); list.add("SEM 2"); ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list); dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter1.notifyDataSetChanged(); s2.setAdapter(dataAdapter1); } if (sp1.contentequals("I.T,C.E,EXTC,MECH,CIVIL") && !sp2.contains("SEM 3,SEM 4,SEM 5,SEM 6,SEM 7,SEM 8")) { List<String> list = new ArrayList<String>(); list.add("SEM 3"); list.add("SEM 4"); list.add("SEM 5"); list.add("SEM 6"); list.add("SEM 7"); list.add("SEM 8"); ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter2.notifyDataSetChanged(); s2.setAdapter(dataAdapter2); } if (sp1.contentEquals("F.E")) { if (sp2.contentEquals("SEM 1")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied Chemistry 1"); list1.add("Applied Mathematics 1"); list1.add("Applied Physics 1"); list1.add("Basic Electrical & Electronics Engineering"); list1.add("Engineering Mechanics"); list1.add("Environmental Studies"); ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter3.notifyDataSetChanged(); s3.setAdapter(dataAdapter3); } else if (sp2.contentEquals("SEM 2")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied Chemistry 2"); list1.add("Applied Mathematics 2"); list1.add("Applied Physics 2"); list1.add("Communication Skills"); list1.add("Engineering Drawing"); list1.add("Structured Programming Approach"); ArrayAdapter<String> dataAdapter4 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter4.notifyDataSetChanged(); s3.setAdapter(dataAdapter4); } } else if (sp1.contentEquals("I.T")) { if (sp2.contentEquals("SEM 3")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 3"); list1.add("Data structure and algorithm analysis"); list1.add("Object oriented programming methodology"); list1.add("Anlog and digital circuits"); list1.add("Database management systems"); list1.add("Principales of anlog and digital communication"); ArrayAdapter<String> dataAdapter5 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter5.notifyDataSetChanged(); s3.setAdapter(dataAdapter5); } else if (sp2.contentEquals("SEM 4")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 4"); list1.add("Computer network"); list1.add("Computer organization and architecture"); list1.add("Automata theory"); list1.add("Web programming"); list1.add("Information theory and coding"); ArrayAdapter<String> dataAdapter6 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter6.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter6.notifyDataSetChanged(); s3.setAdapter(dataAdapter6); } else if (sp2.contentEquals("SEM 5")) { List<String> list1 = new ArrayList<String>(); list1.add("Computer graphics and virtual reality"); list1.add("Operating system"); list1.add("Microcontroller and embedded systems"); list1.add("Advanced database management systems"); list1.add("Open source technologies"); ArrayAdapter<String> dataAdapter7 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter7.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter7.notifyDataSetChanged(); s3.setAdapter(dataAdapter7); } else if (sp2.contentEquals("SEM 6")) { List<String> list1 = new ArrayList<String>(); list1.add("Software engineering"); list1.add("Distributed systems"); list1.add("System and web security"); list1.add("Data mining and business intelligence"); list1.add("Advance internet Technology"); ArrayAdapter<String> dataAdapter8 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter8.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter8.notifyDataSetChanged(); s3.setAdapter(dataAdapter8); } else if (sp2.contentEquals("SEM 7")) { List<String> list1 = new ArrayList<String>(); list1.add("Wireless technology"); list1.add("Cloud computing"); list1.add("Software project management"); list1.add("Intelligent system"); ArrayAdapter<String> dataAdapter9 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter9.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter9.notifyDataSetChanged(); s3.setAdapter(dataAdapter9); } else if (sp2.contentEquals("SEM 8")) { List<String> list1 = new ArrayList<String>(); list1.add("Big data analytics"); list1.add("Storage network management and retrieval"); list1.add("Computer simulation and modeling"); ArrayAdapter<String> dataAdapter10 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter10.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter10.notifyDataSetChanged(); s3.setAdapter(dataAdapter10); } } else if (sp1.contentEquals("C.E")) { if (sp2.contentEquals("SEM 3")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 3"); list1.add("Object oriented programming methodology"); list1.add("Data structures"); list1.add("Digital logic design and analysis"); list1.add("Discrete structures"); list1.add("Electronics circuits and communication fundamentals"); ArrayAdapter<String> dataAdapter11 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter11.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter11.notifyDataSetChanged(); s3.setAdapter(dataAdapter11); } else if (sp2.contentEquals("SEM 4")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 4"); list1.add("Analysis of algorithms"); list1.add("Computer organization and architecture"); list1.add("Data base management systems"); list1.add("Theoretical computer science"); list1.add("Computer graphics"); ArrayAdapter<String> dataAdapter12 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter12.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter12.notifyDataSetChanged(); s3.setAdapter(dataAdapter12); } else if (sp2.contentEquals("SEM 5")) { List<String> list1 = new ArrayList<String>(); list1.add("Microprocessor"); list1.add("Operating systems"); list1.add("Structured and object oriented analysis and design"); list1.add("Computer network"); ArrayAdapter<String> dataAdapter13 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter13.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter13.notifyDataSetChanged(); s3.setAdapter(dataAdapter13); } else if (sp2.contentEquals("SEM 6")) { List<String> list1 = new ArrayList<String>(); list1.add("System programming and compiler construction"); list1.add("Software engineering"); list1.add("Distributed database"); list1.add("Mobile communication and computing"); ArrayAdapter<String> dataAdapter14 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter14.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter14.notifyDataSetChanged(); s3.setAdapter(dataAdapter14); } else if (sp2.contentEquals("SEM 7")) { List<String> list1 = new ArrayList<String>(); list1.add("Digital singal and image processing"); list1.add("Robotics and AI"); list1.add("Mobile computing"); list1.add("System security"); ArrayAdapter<String> dataAdapter15 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter15.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter15.notifyDataSetChanged(); s3.setAdapter(dataAdapter15); } else if (sp2.contentEquals("SEM 8")) { List<String> list1 = new ArrayList<String>(); list1.add("Distributed computing"); list1.add("Multimedia system design"); ArrayAdapter<String> dataAdapter16 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter16.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter16.notifyDataSetChanged(); s3.setAdapter(dataAdapter16); } } else if (sp1.contentEquals("EXTC")) { if (sp2.contentEquals("SEM 3")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 3"); list1.add("Analog electronics 1"); list1.add("Digital electronics"); list1.add(" Circuits and transmission lines"); list1.add("Electronic instrument and measurements"); ArrayAdapter<String> dataAdapter17 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter17.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter17.notifyDataSetChanged(); s3.setAdapter(dataAdapter17); } else if (sp2.contentEquals("SEM 4")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied maths 4"); list1.add("Analog electronics 2"); list1.add(" Microprocessors and peripherals"); list1.add(" Wave theory and propagation"); list1.add("Signals and systems"); list1.add(" Control system"); ArrayAdapter<String> dataAdapter18 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter18.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter18.notifyDataSetChanged(); s3.setAdapter(dataAdapter18); } else if (sp2.contentEquals("SEM 5")) { List<String> list1 = new ArrayList<String>(); list1.add(" Microcontroller and applisubions"); list1.add(" Anlog communication"); list1.add(" Random signal analysis"); list1.add(" RF modeling and antennas"); list1.add(" Integrated circuits"); ArrayAdapter<String> dataAdapter19 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter19.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter19.notifyDataSetChanged(); s3.setAdapter(dataAdapter19); } else if (sp2.contentEquals("SEM 6")) { List<String> list1 = new ArrayList<String>(); list1.add(" Digital communication"); list1.add(" Discrete time signal processing"); list1.add(" Computer communication and telecom networks"); list1.add(" Television engineering"); list1.add(" Operating systems"); list1.add(" VLSI design"); ArrayAdapter<String> dataAdapter20 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter20.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter20.notifyDataSetChanged(); s3.setAdapter(dataAdapter20); } else if (sp2.contentEquals("SEM 7")) { List<String> list1 = new ArrayList<String>(); list1.add(" Mobile communication system"); list1.add(" Fundamentals of microwave engineering"); list1.add(" Computer communication network"); list1.add(" Discrete time signal processing"); ArrayAdapter<String> dataAdapter21 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter21.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter21.notifyDataSetChanged(); s3.setAdapter(dataAdapter21); } else if (sp2.contentEquals("SEM 8")) { List<String> list1 = new ArrayList<String>(); list1.add("Advance microwave engineering"); list1.add(" Optical fiber communication"); list1.add(" Wireless network"); ArrayAdapter<String> dataAdapter22 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter22.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter22.notifyDataSetChanged(); s3.setAdapter(dataAdapter22); } } else if (sp1.contentEquals("MECH")) { if (sp2.contentEquals("SEM 3")) { List<String> list1 = new ArrayList<String>(); list1.add(" Applied maths 3"); list1.add(" Production process 1"); list1.add(" Thermodynamics"); list1.add(" Strength of material"); ArrayAdapter<String> dataAdapter23 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter23.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter23.notifyDataSetChanged(); s3.setAdapter(dataAdapter23); } else if (sp2.contentEquals("SEM 4")) { List<String> list1 = new ArrayList<String>(); list1.add(" Applied maths 4"); list1.add(" Production process 2"); list1.add(" Fluid mechanics"); list1.add(" Theory of machine 1"); list1.add(" Material technology"); list1.add(" Industrial electronics"); ArrayAdapter<String> dataAdapter24 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter24.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter24.notifyDataSetChanged(); s3.setAdapter(dataAdapter24); } else if (sp2.contentEquals("SEM 5")) { List<String> list1 = new ArrayList<String>(); list1.add(" Production process 3"); list1.add(" I C engines"); list1.add(" Mechanical instrument and control"); list1.add(" Theory of machine 2"); ArrayAdapter<String> dataAdapter25 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter25.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter25.notifyDataSetChanged(); s3.setAdapter(dataAdapter25); } else if (sp2.contentEquals("SEM 6")) { List<String> list1 = new ArrayList<String>(); list1.add("Metrology and quality engineering"); list1.add("Machine design 1"); list1.add(" Mechanical vibrations"); list1.add(" Thermal and fluid power engineering"); list1.add(" Mechaltronics"); list1.add(" Finite element alaysis"); ArrayAdapter<String> dataAdapter26 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter26.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter26.notifyDataSetChanged(); s3.setAdapter(dataAdapter26); } else if (sp2.contentEquals("SEM 7")) { List<String> list1 = new ArrayList<String>(); list1.add(" Machine design 2"); list1.add(" CAD/CAM/CIM"); list1.add(" Mechanical utility system"); list1.add(" Production planning and control"); ArrayAdapter<String> dataAdapter27 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter27.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter27.notifyDataSetChanged(); s3.setAdapter(dataAdapter27); } else if (sp2.contentEquals("SEM 8")) { List<String> list1 = new ArrayList<String>(); list1.add(" Design of mechanical system"); list1.add(" Industrial engineering and management"); list1.add(" Refrigerator and air conditioning"); ArrayAdapter<String> dataAdapter28 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter28.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter28.notifyDataSetChanged(); s3.setAdapter(dataAdapter28); } } else if (sp1.contentEquals("CIVIL")) { if (sp2.contentEquals("SEM 3")) { List<String> list1 = new ArrayList<String>(); list1.add(" Applied mathematics 3"); list1.add(" Surveying 1"); list1.add(" Strength of materials"); list1.add(" Building materials and construction"); list1.add(" Engineering geology"); list1.add(" Fluid mechanics 1"); ArrayAdapter<String> dataAdapter29 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter29.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter29.notifyDataSetChanged(); s3.setAdapter(dataAdapter29); } else if (sp2.contentEquals("SEM 4")) { List<String> list1 = new ArrayList<String>(); list1.add("Applied mathematics 4"); list1.add(" Surveying 2"); list1.add(" Structural analysis 1"); list1.add(" Building design and drawing 1"); list1.add(" Concrete technology"); list1.add(" Fluid mechanics 2"); ArrayAdapter<String> dataAdapter30 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter30.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter30.notifyDataSetChanged(); s3.setAdapter(dataAdapter30); } else if (sp2.contentEquals("SEM 5")) { List<String> list1 = new ArrayList<String>(); list1.add(" Structural analysis 2"); list1.add(" Geotechnical engineering 1"); list1.add(" Building design and drawing 2"); list1.add("Applied hydraulics 1"); list1.add("Transportation engineering 1"); ArrayAdapter<String> dataAdapter31 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter31.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter31.notifyDataSetChanged(); s3.setAdapter(dataAdapter31); } else if (sp2.contentEquals("SEM 6")) { List<String> list1 = new ArrayList<String>(); list1.add(" Geotechnical engineering 2"); list1.add(" Design and drawing of steel structures"); list1.add("Applied hydraulics 2"); list1.add(" Transportation engineering 2"); list1.add(" Environmental engineering 1"); list1.add("Theory of reinforced prestressed concrete"); ArrayAdapter<String> dataAdapter32 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter32.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter32.notifyDataSetChanged(); s3.setAdapter(dataAdapter32); } else if (sp2.contentEquals("SEM 7")) { List<String> list1 = new ArrayList<String>(); list1.add(" Limit state method for reinforced concrete structures"); list1.add("Quantity survey, estimation and valuation"); list1.add(" Irrigation engineering"); list1.add(" Environmental engineering 2"); ArrayAdapter<String> dataAdapter33 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter33.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter33.notifyDataSetChanged(); s3.setAdapter(dataAdapter33); } else if (sp2.contentEquals("SEM 8")) { List<String> list1 = new ArrayList<String>(); list1.add("Design and drawing for reinforced concrete structures"); list1.add("Construction engineering"); list1.add("Construction management"); ArrayAdapter<String> dataAdapter34 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list1); dataAdapter34.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); dataAdapter34.notifyDataSetChanged(); s3.setAdapter(dataAdapter34); } } } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }