2016-07-18 3 views
-2
<xbrli:xbrl xmlns:aoi="http://www.aointl.com/20160331" xmlns:country="http://xbrl.sec.gov/country/2016-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2016-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2014-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2016-01-31" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2011-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2016-01-31" xmlns:us-roles="http://fasb.org/us-roles/2016-01-31" xmlns:us-types="http://fasb.org/us-types/2016-01-31" xmlns:utreg="http://www.xbrl.org/2009/utr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <link:schemaRef xlink:href="aoi-20160331.xsd" xlink:type="simple"/> 
    <xbrli:context id="FD2016Q4YTD"> 
    <xbrli:entity> 
    <xbrli:identifier scheme="http://www.sec.gov/CIK">0000939930</xbrli:identifier> 
    </xbrli:entity> 
    <xbrli:period> 
    <xbrli:startDate>2015-04-01</xbrli:startDate> 
    <xbrli:endDate>2016-03-31</xbrli:endDate> 
    </xbrli:period> 
    </xbrli:context> 

    <aoi:OtherIncomeAndExpensePolicyTextBlock contextRef="FD2016Q4YTD" id="Fact-F51C7616E17E5B8B0B770D410BBF5A3E"> 
    <div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;font-weight:bold;">Other Income (Expense)</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"></font></div></div> 
    </aoi:OtherIncomeAndExpensePolicyTextBlock> 
    </xbrli:xbrl> 

This is My XML[XBRL], i need to parse this. This xml is my input and i don't know whether its a valid or not but in need output like this : 

    <div style="font-family:Times New Roman;font-size:10pt;"><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;font-weight:bold;">Other Income (Expense)</font></div><div style="line-height:120%;text-align:justify;font-size:10pt;"><font style="font-family:inherit;font-size:10pt;"></font></div></div> 

Please someone share me the knowledge for this problem i am facing from last two weeks. 

this is the code i am using 

    File fXmlFile = new File("/home/devteam-user1/Desktop/ky/UnitTesting.xml"); 
       DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
       DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
       Document doc = dBuilder.parse(fXmlFile); 

       XPath xPath = XPathFactory.newInstance().newXPath(); 
       final String DIV_UNDER_ROOT = "/*/aoi"; 
       NodeList divList = (NodeList)xPath.compile(DIV_UNDER_ROOT) 
         .evaluate(doc, XPathConstants.NODESET); 
       System.out.println(divList.getLength()); 
       for (int i = 0; i < divList.getLength() ; i++) { // just in case there is more than one 
        Node divNode = divList.item(i); 
        System.out.println(nodeToString(divNode)); 

//nodeToString method below 

    private static String nodeToString(Node node) throws Exception 
     { 
      Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
      transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
      StreamResult result = new StreamResult(new StringWriter()); 
      transformer.transform(new DOMSource(node), result); 
      return result.getWriter().toString(); 
     } 
+0

Я не очень хорошо понимаю, но если вам нужно включить HTML внутри XML, вам следует избегать символов. Например Hello World будет выводиться как < б > Hello World </б > Или использовать блок –

+0

@marco я не нужно вставить HTML в xml.its там уже в xml.i нужно получить, что содержимое HTML с помощью используя любой java api. в моем вопросе я четко упомянул мой INPUT и OUTPUT –

+0

Используйте XML-синтаксический анализатор для извлечения XML-информации с помощью тега XML. Сохраните HTML. –

ответ

0

это работает хорошо для меня

public static void main(String[] args) throws IOException { 
    FileInputStream fis = new FileInputStream("yourfile.xml"); 
    Document doc = Jsoup.parse(Utils.streamToString(fis)); 
    System.out.println(doc.select("aoi|OtherIncomeAndExpensePolicyTextBlock").html().toString()); 
} 
+0

@sharonbn: Я надеюсь, что здесь мы попытаемся получить знания от таких людей, как вы. u сказал мне, что это не совсем сформированный XML.n также я новичок в этом форуме, так как я понял, что если мой вопрос правильный, то я получу решение легко ... не делаю ничего кроме этого. Спасибо –

+0

@JohnAdam - НЕ ИЗМЕНИТЕ ответы на ваш вопрос! НЕ ОТКРЫВАЙТЕ НОВЫЕ ВОПРОСЫ. это не то, как вести себя с людьми, пытающимися помочь вам! - sharonb –

+0

это действительно просто базовая любезность, чтобы дать кредит, когда вы копируете-вставить от кого-то elses ответ –

0

Вашего главного вопроса заключается в

final String DIV_UNDER_ROOT = "/*/aoi"; 

Который является выражением XPath, который соответствует «любому узлу 2 уровня под root, который имеет локальное имя aoi и без пространства имен ". Это не то, что вы хотите.

Вы хотите, чтобы соответствовать любому содержанию узла, который два уровня глубины, чье пространство имен совмещенному с помощью «Aoi» (что означает, что он принадлежит к «http://www.aointl.com/20160331» пространству имен), и локальное имя которого «OtherIncomeAndExpensePolicyTextBlock».

Matching пространства имен в XPath в Java тих громоздкий (см XPath with namespace in Java и How to query XML using namespaces in Java with XPath?), но длинный рассказ короткий, вы могли бы попробовать этот путь вместо этого:

final String DIV_UNDER_ROOT = "//*[local-name()='OtherIncomeAndExpensePolicyTextBlock' and namespace-uri()='http://www.aointl.com/20160331']/*"; 

Это будет работать только если ваш DocumentBuilderFactory сделано имена известны , поэтому вы должны убедиться, сконфигурировав его так, как описано выше:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
dbFactory.setNamespaceAware(true); 
+0

OP должен инвестировать время, чтобы лечить, чтобы использовать инструмент и синтаксис XPATH. вот и все –

Смежные вопросы